是将短期存储的数据实现长期存储
数据存储的分类:
- 短期存储:存放在内存中,随着程序的关闭而释放----对象,集合,变量,数组
- 长期存储:存放在磁盘中,即使程序关闭了,数据仍然存在---文件
序列化:从内存放入磁盘---可以实现数据的长久保存(数据持久化的手段)
反序列化:从磁盘放入内存
进行序列化的步骤:
任何的短期存储都可以序列化,通过对象的序列化
- 创建一个类
- 使用对应的流将对象存到磁盘文件中---序列化 ObjectOutputStream
- 使用对应的流将对象从磁盘中取出,放回内存---反序列化 ObjectInputStream
- 关闭流
- Serializable:
一个类如果没有实现Serializable进行序列化会报异常
- 实现Serializable的接口的类可以达到的目的:
- 可以进行序列化
- 进行序列化的类的元素都必须支持序列化
- 接口本身没有方法或字段,只是用来表示可序列化的寓意
- 写出---序列化
- 创建序列化流并关联文件
ObjectOutputStream objectOutputStream =new ObjectOutputStream(new FileOutputStream("temp4.txt"));
- 调用方法实现序列化(序列化后的内容不能直接查看,要想查看要进行反序列化)
objectOutputStream.writeObject(new Person("bingbign",23,"女"));
objectOutputStream.close();
- 读入---反序列化
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("temp4.txt"));
Object object = objectInputStream.readObject();
//向下转型
Person person = (Person)object;
System.out.println(person);
objectInputStream.close();