各位小伙伴们大家好,在之前的文章中小编介绍了对象的序列化流Java之对象的序列化流,这次,小编要介绍的时对象的反序列化流,具体如下:
java.io.ObjectInputStream extends InputStream
ObjectInputStream :对象的反序列化流。
构造方法:
ObjectInputStream(InputStream in):创建从指定 InputStream 读取的ObjectInputStream。
参数:
InputStream in:字节输入流
特有的成员方法:
使用步骤:
1. 创建ObjectInputStream对象,构造方法中传递字节输入流
2. 使用构造方法中获得方法readObject读取对象要保存的文件
3. 释放资源
4. 使用读取出来的对象(打印)
代码如下:
public class Demo02ObjectInputStream {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D://a.txt"));
Object o=ois.readObject();
ois.close();
Person p=(Person)o;//强转为Person
System.out.println(p.getName()+p.getAge());
}
}
有一点,小编要提一下,readObject方法声明抛出了:ClassNotFoundException(class文件找不到异常)当不存在对象的class文件时抛出异常
反序列化的前提:
1. 类必须实现Serializable
2. 必须存在类对应的class文件
关于对象的反序列化,就是从序列化的文件中读取数据,其实使用步骤和对象的序列化差不多,不过里面有一个文件找不到异常,还是要就用一下的。小编就先说到这里,希望这篇文章可以帮到大家,也欢迎各位小伙伴补充和纠错。
图片来自网络,如有侵权,请联系作者删除