Java(对象序列化流和对象反序列化流)

一.序列化 & 反序列化

序列化:把对象以流的方式,写入(writeObject())到文件中保存,叫对象的序列化
反序列化:把文件中保存的对象,以流的方式读取(readObject())出来,叫对象的反序列化

序列化接口:要进行序列化和反序列化的类必须实现Serializable接口,以启用其序列化功能,给类一个标记

二.ObjectOutputStream

1.概念

java.io.ObjectOutputStream  extends OutputStream
ObjectOutputStream:对象的

作用:把对象以流的方式,写入(writeObject())到文件中保存

2.构造方法

ObjectOutputStream(OutputStream out) 创建一个写入指定的OutputStream的ObjectOutputStream。
 参数:
    OutputStream out:字节输出流

3.特有的成员方法

void writeObject(Object obj) 将指定的对象写入ObjectOutputStream。

4.使用步骤

1.创建ObjectOutputStream对象,构造方法中传递字节输出流
2.使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中
3.释放资源
注意:类必须实现Serializable接口

三.ObjectInputStream

1.概念

java.io.ObjectInputStream extends InputStream
ObjectInputStream :对象的反序列化流

作用:把文件中保存的对象,以流的方式读取(readObject())出来

2.构造方法

ObjectInputStream(InputStream in) 创建从指定的InputStream读取的ObjectInputStream。

参数:
InputStream in:字节输入流

3.特有的成员方法

Object readObject() ;从ObjectInputStream读取一个对象。 

4.使用步骤

1.创建ObjectInputStream对象,构造方法中传递字节输入出流
2.使用ObjectInputStream对象中的方法readObject,读取保存对象的文件
3.释放资源
4.使用读取出来的对象(打印)
注意:类必须实现Serializable接口

四.invalidClassException异常

解决:手动给类一个序列化标志:static  final long seriaVersionUID = 42L;

posted @ 2021-03-28 19:47  一名初学者  阅读(77)  评论(0)    收藏  举报