java IO流: 练习:序列化集合
练习:序列化集合
-
想在文件中保存多个对象时,可以把多个对象存储到一个集合中
-
对集合进行序列化和反序列化
分析
- 定义一个存储Person对象的ArrayList集合
- 往ArrayList集合中存储Person对象
- 创建一个序列化流ObjectOutputStream对象
- 使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化
- 创建一个反序列化ObjectInputStream对象
- 使用ObjectInputStream对象中的方法readObject读取文件中保存的集合
- 把Object类型的集合转换为ArrayList类型
- 遍历ArrayList集合
- 释放资源
public class Demo {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ArrayList<Person> list=new ArrayList<>();
list.add(new Person("张三",22));
list.add(new Person("李四",11));
list.add(new Person("王二",20));
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("D:\\document\\code\\xuexi\\java\\aaa\\a.txt"));
oos.writeObject(list);
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:\\document\\code\\xuexi\\java\\aaa\\a.txt"));
Object o = ois.readObject();
ArrayList<Person> list2=(ArrayList<Person>)o;
oos.close();
ois.close();
for (Person person : list2) {
System.out.println(person);
}
}
}
//结果:
// Person{name='张三', age=22}
// Person{name='李四', age=11}
// Person{name='王二', age=20}

浙公网安备 33010602011771号