Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。方便了对象以二进制序列的形式在网络上传送。
首先,需要一个实现Serializable接口的实体类。
public class User implements Serializable{
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
序列化过程:
User user = new User();
//序列化
user.setUsername("张三");
user.setPassword("123456");
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("a.txt"));
out.writeObject(user);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
反序列化过程:
//反序列化
ObjectInputStream in;
try {
in = new ObjectInputStream(new FileInputStream("/Users/zjy/desktop/a.txt"));
user = (User) in.readObject();
System.out.println(user.getUsername());
System.out.println(user.getPassword());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
序列化文件内容: