序列化与反序列化

序列化:将对象写入到IO流中
反序列化:从IO流中恢复对象

java.io.ObjectOutputStream
ObjectOutputStream(OutputStream out) 把一个对象写出到指定的OutputStream 例如:ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("文件名"))
void writeObject(Object obj) 写出指定的类到ObjecOutputStream out.writeObject(obj);
java.io.ObjectInputStream
ObjectInputStream(InputStream in) 把一个对象从指定的InputStream读出来 例如:ObjectInputStream out = new ObjectInputStream(new FileInputStream("文件名"))
void readObject() 写出指定的类到ObjecInputStream Object obj =(Object)in.readObject(obj);

要序列化的类需要实现 java.io.Serializable 接口

实现 Serializable 接口:
可以定义writeObject、readObject、writeReplace、readResolve 方法,会通过反射调用。
实现 Externalizable 接口:
需要实现 writeExternal 和 readExternal 方法。

序列化ID
静态字段不会序列化
屏蔽字段:transient

原文地址:https://www.cnblogs.com/ZCWang/p/12865647.html