参考之前整理过的Java序列化与反序列化:https://www.cnblogs.com/BigJunOba/p/9127414.html
使用对象输入输出流可以实现对象序列化与反序列化,可以直接存取对象。
将对象存入一个流被称为序列化,而从一个流将对象读出被称为反序列化。
对象序列化与反序列化的过程:
1.被序列化的对象必须实现java.io.Serializable接口,否则不能实现序列化。
public class Employee implements Serializable{ ... } public class Manager extends Employee{ ... }
2.创建一个对象输出流并包装一个其他类的目标输出流,如文件输出流,然后通过对象输出流写入对象。
Employee harry = new Employee("Harry Hacker", 5000, 1989, 10, 1);
Maneger boss = new Manager("Carl Cracker", 7000, 1984, 12, 15);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("empoyee.dat")); oos.writeObject(harry); oos.writeObject(boss);
3.创建一个对象输入流并包装一个其他类的目标输入流,如文件输入流,然后通过对象输入流读出对象(使用强制类型转换)。
ObjectInputStream ois = new ObjectInputStream (new FileInputStream("empoyee.dat")); Employee e1 = (Employee)ois.readObject(); Maneger e2 = (Manager)ois.readObject();