理解Java中的序列化和反序列化过程
在Java中,序列化和反序列化是将对象的状态存储(序列化)到磁盘或网络上,以便稍后恢复该状态(反序列化)的过程。
具体步骤如下:
- 序列化:
- 创建一个对象,例如一个Person类的实例。
- 使用Java的序列化API来实现。主要用到
ObjectOutputStream
和Serializable
接口。 - 将对象写入输出流中。
try {
FileOutputStream fos = new FileOutputStream("person.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
Person person = new Person("John Doe", 30);
oos.writeObject(person); // 序列化操作
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
- 反序列化:
- 在另一个地方(或同一个应用的不同部分)创建一个
ObjectInputStream
实例。 - 从输入流中读取对象,使用
readObject()
方法。
- 在另一个地方(或同一个应用的不同部分)创建一个
try {
FileInputStream fis = new FileInputStream("person.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Person person = (Person) ois.readObject(); // 反序列化操作
System.out.println(person); // 打印恢复的人员对象
ois.close();
fis.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
以上就是Java中序列化和反序列化的基本过程。
还没有评论,来说两句吧...