💡
ObjectOutputStream FileInputStream
不是以文本方式存的
什么是java序列化?哪些情况不需要序列化?如何实现序列化?
序列化:把对象转换为字节序列的过程称为对象的序列化。
反序列化:把字节序列恢复为对象的过程称为对象的反序列化。
就是持久化
serialVersionUID 什么作用?
唯一标示一个类,反序列化的时候会对比这个id,一样的话就说明就是一个类.
这个最好显式声明,因为自动生成的可能会有BUG. 不用很长,能做区别用就行
serialVersionUID
implements Serializable
private static final long serialVersionUID = 1L;
@Override
public String toString() {
return "Sys_user{" +
"uid=" + uid +
", code=" + code +
", name=" + name +
", password=" + password +
", state=" + state +
"}";
}
writeObject() 序列化
readObject() 反序列化
try {
// 对象输出流
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("D://testSerializable")));
objectOutputStream.writeObject(new User("zhangsan", 100));
objectOutputStream.close();
// 对象输入流
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(new File("D://testSerializable")));
User user = (User) objectInputStream.readObject();
System.out.println(user);
objectInputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
评论区