序列化: 写对象,把对象以流的方法写入到文件中

反序列化:读对象把文件中保存的对象,以流的方式读取出来

序列化和反序列化时,会抛出NotSerializableException没有序列化异常

类通过实现java.io.Serializable接口以启用其序列化功能。未实现接口的类将无法使其任何状态序列化或反序列化。

Serializable接口也叫标记型接口,要进行序列化和反序列化的类必须实现Serializable接口,就会给类添加一个标记,当我们进行序列化和反序列化时,就会检测类上是否有这个标记

ObjectOutputStream: 对象的序列化流

继承了OutputStream

构造方法:

ObjectOutputStream(OutputStream out):创建写入指定OutputStream的ObjectOutputStream

out:字节输出流

特有的成员方法:

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

使用方法:

1、创建ObjectOutputStream对象,构造方法中传递字节输出流

2、使用ObjectOutputStream对象中的方法writeObject,把对象写入到文件中

3、释放资源

ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("d:\\person.txt"));
oos.writeObject(new person(1,"a"));
oos.close();
  • 1.
  • 2.
  • 3.

ObjectInputStream:   对象的反序列化流

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

构造方法:

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

in:字节输入流

特有的成员方法:

Object readObject()从ObjectInputStream读取对象

使用步骤:

1、创建ObjectInputStream对象,构造方法中传递字节输入流

2、使用ObjectInputStream对象中方法readObject读取保存对象的文件

3、释放资源

4、使用读取出来的对象

readObject方法声明抛出了ClassNotFoundException(class文件找不到异常)

当不存在对象的class文件时抛出了异常