ObjectOutputStream:对对象进行序列化的输出流,即将给定的对象转换为一组字节后写出的高级流
构造方法:
ObjectOutputStream(OutputStream out)
void writeObject(Object o):将对象序列化,然后写出
ObjectInputStream:将一组字节转换为对应对象读取的输入流(反序列化)
构造方法:
ObjectIntputStream(InputStream in)
Object readObject():从流中读取字节并转换为对象
一个对象要想通过ObjectOutputStream进行序列化,那么该对象所属的类必须实现Serializable接口。
该接口没有定义任何抽象方法,实现该接口仅仅用于标识当前类的实例可以被序列化。
在ObjectOutputStream序列化时,被transient关键字修饰的值将被忽略
当类的属性增加、修改时,若版本号未变,那么序列化时会尽可能兼容现有的版本,若版本号发生变化时,那么反序列化时会抛出异常(不写也将抛出异常)
private static final long serialVersionUID = 1L;