练习:序列化集合
- 将存有多个自定义对象的集合序列化操作,保存到
list.txt
文件中。 - 反序列化
list.txt
,并遍历集合,打印对象信息。
案例分析
- 定义一个存储Person对象的ArrayList集合
- 往ArrayList集合中存储Person对象
- 创建一个序列化流ObjectOutputStream对象
- 使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
- 创建一个反序列化ObjectInputStream对象
- 使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
- 把Object类型的集合转换为ArrayList类型
- 遍历ArrayList集合
- 释放资源
案例实现
package com.itheima.demo04.ObjectStream;
import java.io.*;
import java.util.ArrayList;
public class Demo03Test {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("张三",18));
list.add(new Person("李四",19));
list.add(new Person("王五",20));
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("list.txt"));
oos.writeObject(list);
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("list.txt"));
Object o = ois.readObject();
ArrayList<Person> list2 = (ArrayList<Person>)o;
for (Person p : list2) {
System.out.println(p);
}
ois.close();
oos.close();
}
}
运行结果
Person{name=‘张三’, age=18}
Person{name=‘李四’, age=19}
Person{name=‘王五’, age=20}