java多个对象的序列化和反序列化

Posted MYPYNOTE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java多个对象的序列化和反序列化相关的知识,希望对你有一定的参考价值。

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

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

如:

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){

}

以上是关于java多个对象的序列化和反序列化的主要内容,如果未能解决你的问题,请参考以下文章

什么是java的序列化和反序列化?

Java对象的序列化和反序列化

java反序列化引起的内存溢出怎么解决

一文带你全面了解java对象的序列化和反序列化

java序列化和反序列化

HashMap(key,Object)中的Java Gson序列化和反序列化对象[重复]