序列化与反序列化
序列化:把对象存储为文件的过程(转换为二进制,然后写入的过程)
反序列化:把文件在读取后转换为对象的过程
[注意]一定得先后序列化,才能反序列化。
序列化与反序列化的本质就是文件的读写操作,但是简化了文件读写操作
new 出来的对象
(将实例化的对象存到文件中)
Java实现序列化与反序列化的原理
输入流
通过流ObjectOutputStream 完成序列化操作
输出流
通过流ObjectInputStream 完成反序列化操作
[说明] 并不是所有的类的对象都能进行序列化、反序列化操作
类必须要实现Serializable接口
当类中含有未实现Serializable接口的实例时,会报错NotSerializableException
反序列化过程中
@SuppressWarnings("unchecked")//在行上添加注解:jvm不进行检测
ArrayList<Student> stu = (ArrayList)ois.readObject();//会有安全性检测