序列化05序列化的练习

34次阅读

共计 1217 个字符,预计需要花费 4 分钟才能阅读完成。

package com.itheima.demo04.ObjectStream;

import java.io.*;
import java.util.ArrayList;

/*

 练习:序列化集合
    当我们想在文件中保存多个对象的时候
    可以把多个对象存储到一个集合中
    对集合进序列化和反序列化
分析:
    1. 定义一个存储 Person 对象的 ArrayList 集合
    2. 往 ArrayList 集合中存储 Person 对象
    3. 创建一个序列化流 ObjectOutputStream 对象
    4. 使用 ObjectOutputStream 对象中的方法 writeObject, 对集合进行序列化
    5. 创建一个反序列化 ObjectInputStream 对象
    6. 使用 ObjectInputStream 对象中的方法 readObject 读取文件中保存的集合
    7. 把 Object 类型的集合转换为 ArrayList 类型
    8. 遍历 ArrayList 集合
    9. 释放资源 

*/
public class Demo03Test {

public static void main(String[] args) throws IOException, ClassNotFoundException {
    //1. 定义一个存储 Person 对象的 ArrayList 集合
    ArrayList<Person> list = new ArrayList<>();
    //2. 往 ArrayList 集合中存储 Person 对象
    list.add(new Person("张三",18));
    list.add(new Person("李四",19));
    list.add(new Person("王五",20));
    //3. 创建一个序列化流 ObjectOutputStream 对象
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("10_IO\\list.txt"));
    //4. 使用 ObjectOutputStream 对象中的方法 writeObject, 对集合进行序列化
    oos.writeObject(list);
    //5. 创建一个反序列化 ObjectInputStream 对象
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("10_IO\\list.txt"));
    //6. 使用 ObjectInputStream 对象中的方法 readObject 读取文件中保存的集合
    Object o = ois.readObject();
    //7. 把 Object 类型的集合转换为 ArrayList 类型
    ArrayList<Person> list2 = (ArrayList<Person>)o;
    //8. 遍历 ArrayList 集合
    for (Person p : list2) {System.out.println(p);
    }
    //9. 释放资源
    ois.close();
    oos.close();}

}

正文完
 0