在实际开发中若想一次性保存多个对象,可以先将对象存储到某个集合中,再对该集合进行序列化和反序列化操作。
代码实现:
// 定义ArrayList集合并为其添加多个Person对象
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("李荣浩", '男', 35));
list.add(new Person("杨丞琳", '女', 36));
list.add(new Person("邢晗铭", '女', 20));
// 创建ObjectOutputStream对象
String path = "myFile\\SeriaFlow\\PersonList.txt";
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(path));
// 调用ObjectOutputStream对象的writeObject()序列化集合
out.writeObject(list);
// 创建ObjectInputStream对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream(path));
// 调用ObjectInputStream对象的readObject()读取集合中存储的对象
Object obj = in.readObject();
// 集合数据类型转换
ArrayList<Person> objList = (ArrayList<Person>) obj;
// 遍历ArrayList集合
for (Person person : objList) {
System.out.println(person.toString());
}
// 关闭流对象释放资源
in.close();
out.close();
运行示例: