11. 编写两个方法,分别实现如下功能: A) save()方法:创建三个Person类型对象,将它们使用序列化手段写入本地文件中持久化存储 B) load()方法:将save()方法中保存的Person对象读取出来,打印输出属性
时间: 2024-10-17 11:14:45 浏览: 25
在Java中,你可以使用`ObjectOutputStream`和`ObjectInputStream`来实现序列化和反序列化操作,这两个类分别用于将对象写入流和从流中恢复对象。以下是两个方法的基本实现:
```java
import java.io.*;
import java.util.*;
// 定义Person类
class Person {
private String name;
private int age;
// 构造函数、getters和setters省略
// 如果需要序列化,可以添加equals和hashCode方法满足Serializable接口的要求
}
public class PersistenceUtil {
// A) save()方法
public void save(Person[] persons, String fileName) throws IOException {
try (FileOutputStream fileOut = new FileOutputStream(fileName);
ObjectOutputStream out = new ObjectOutputStream(fileOut)) {
for (Person person : persons) {
out.writeObject(person);
}
}
}
// B) load()方法
public void load(String fileName) throws IOException, ClassNotFoundException {
try (FileInputStream fileIn = new FileInputStream(fileName);
ObjectInputStream in = new ObjectInputStream(fileIn)) {
while (true) {
Person person = (Person) in.readObject();
if (person == null) {
break; // 达到文件结束标志,person为null
}
System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
}
}
}
}
```
阅读全文