一、ObjectOutputStream
1、ObjectOutputStream:对象的序列化流,作用:把对象转成字节数据的输出到文件中保存,对象的输出过程称为序列化,可实现对象的持久存储。
2、构造方法
ObjectOutputStream(OutputStream out)(参数:字节输出流)
3、方法
writeObject():将对象写入流中。
4、使用步骤
(1)创建ObjectOutputStream对象,构造方法中传递字节输出流
(2)使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中
(3)释放资源
5、序列化操作
一个对象要想被序列化,必须满足两个条件
(1)该类必须实现Serializable接口
(2)该类的所有属性必须是可序列化的,如果有一个属性不需要可序列化,则该属性必须注明是瞬时的,使用transient关键字修饰。
注意:static修饰的成员变量不能被序列化,因为静态变量不属于某个对象,而是整个类的
被transient修饰成员变量,不能被序列化
二、ObjectInputStream
1、ObjectInputStream 反序列化流,将之前使用 ObjectOutputStream 序列化的原始数据恢复为对象,以流的方式读取对象。
2、构造方法
ObjectInputStream(InputStream in)(参数:字节输入流)
3、方法
readObject():读取对象。
4、使用步骤
(1) 创建ObjectInputStream对象,构造方法中传递字节输入流
(2)使用ObjectInputStream对象中的方法readObject读取保存对象的文件
(3)打印读取出来的对象
(4)释放资源
5、反序列化
反序列化的两个条件:
(1)类必须实现 Seriaizable 接口
(2)必须存在类对应的 class 文件,否则抛出了ClassNotFoundException异常