Java对象序列化和反序列化实战
在Java编程中,对象的序列化和反序列化是常见的一种数据持久化手段。下面我们将通过实战来理解这个过程。
对象创建:
假设我们有一个Person类,包括name、age等属性。
class Person {
String name;
int age;
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
对象序列化:
对于要持久化的Person对象,我们可以使用Java的ObjectOutputStream来实现。
```java
try {
// 创建输出流
FileOutputStream fos = new FileOutputStream(“person.ser”);// 创建ObjectOutputStream,将fos作为参数
ObjectOutputStream oos = new ObjectOutputStream(fos);// 将Person对象写入序列化流
Person person = new Person(“John Doe”, 30);
oos.writeObject(person);// 关闭ObjectOutputStream和FileOutputStream
oos.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
```对象反序列化:
当需要从文件中恢复Person对象时,可以使用ObjectInputStream来反序列化。
```java
try {
// 创建输入流
FileInputStream fis = new FileInputStream(“person.ser”);// 创建ObjectInputStream,将fis作为参数
ObjectInputStream ois = new ObjectInputStream(fis);// 从序列化流中读取Person对象
Person person = (Person) ois.readObject();// 打印恢复的Person对象信息
System.out.println(person.getName() + “ is “ + person.getAge() + “ years old”));
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
```
通过这个实战过程,你可以更好地理解Java对象序列化和反序列化的原理与应用。
还没有评论,来说两句吧...