通过类ObjectInputStream和ObjectOutputStream序列化和反序列化
java类是否可以序列化只需要看类是否实现了java.io.Serializable接口
(1). java序列化对象到文件
// 初始化对象
Friend friend = new Friend();
friend.age = 18;
friend.name = "高久峰";
// 初始化文件,用于保存序列化的内容
FileOutputStream fileOut = new FileOutputStream("/tmp/fileOut");
// 初始化对象输出流对象
ObjectOutputStream objectOut = new ObjectOutputStream(fileOut);
// 序列化对象并保存
objectOut.writeObject(friend);
objectOut.close();
fileOut.close();
(2). java反序列化对象
// 初始化文件,用于读取序列化的内容
FileInputStream fileIn = new FileInputStream("/tmp/fileOut");
// 初始化对象输出流对象
ObjectInputStream objectIn = new ObjectInputStream(fileIn);
// 反序列化对象
Friend friend = (Friend) objectIn.readObject();
System.out.println(friend.name);