当我们需要序列化多个对象的时候,可以采用集合把多个对象放到集合中,然后序列化整个集合。

而我们要反序列化的时候,就使用集合接收反序列化后的对象

如:

List<Student> studentList = new ArrayList<>();
studentList.add(stu1);
studentList.add(stu2);
studentList.add(stu3);
studentList.add(stu4);

try(
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("MyCode/src/com/xxxx/Test/stus.txt"));  //对象字节输出流关联文件
        ){

   oos.writeObject(studentList); //向stus.txt写入对象(当然我的Student类是实现了序列化接口Serializable)
}catch (Exception e){
    e.printStackTrace();
}

以上代码就是把多个Student对象方法一个ArrayList集合中,然后序列化整个集合。
反序列化就如下:
try (
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("MyCode/src/com/xxxx/Test/stus.txt"));
){
            List<Student> studentList = (ArrayList<Student>)ois.readObject(); //注意这里需要强制转换

            System.out.print(studentList); //因为我在Student类中重写了toString()方法。所以可以输出集合中所有对象的信息
        }catch (Exception e){

        }