public class 返序列化流 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
/*
构造方法
public ObjectInputStream(InputStream in) 把基本流变成高级流
public final void readObject(Object obj) 把对象序列化(写出)到文件中
*/
//创建反序列化流对象
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("/Users/XXX/IdeaProjects/basecode/day02/aaaa/a.txt"));
//读取数据
Student o=(Student) ois.readObject();
System.out.println(o);
ois.close();
}
}
序列化流和反序列化流的细节
细节一:版本号
javabean类中,java会根据成员方法自动生成一个版本号,如果你修改了其中的方法,版本号也会改变。
这就导致如果你通过序列化流将对象边写到本地,修改javabean类后版本号改变,再使用反序列化流读取时会出现异常
解决该问题的方法为,手动设置该javabean类的版本号。
细节二:如果有数据不想存储到本地(为了安全性考虑)
解决方案:使用transient关键字