温馨提示×

Java定义list如何进行序列化

小樊
185
2024-06-25 17:35:31
栏目: 编程语言

Java中的List接口是继承自Collection接口的,可以使用Java的序列化机制来对List进行序列化。在将List对象序列化时,需要注意List中的元素也需要实现Serializable接口。

以下是一个示例代码:

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

public class ListSerializationExample {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("element1");
        list.add("element2");
        list.add("element3");

        // 序列化List对象
        try {
            FileOutputStream fileOut = new FileOutputStream("list.ser");
            ObjectOutputStream out = new ObjectOutputStream(fileOut);
            out.writeObject(list);
            out.close();
            fileOut.close();
            System.out.println("List对象已序列化到list.ser文件中");
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 反序列化List对象
        List<String> deserializedList = null;
        try {
            FileInputStream fileIn = new FileInputStream("list.ser");
            ObjectInputStream in = new ObjectInputStream(fileIn);
            deserializedList = (List<String>) in.readObject();
            in.close();
            fileIn.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }

        if (deserializedList != null) {
            System.out.println("从list.ser文件中反序列化的List对象为:" + deserializedList);
        }
    }
}

在这个示例中,我们创建了一个List对象,并将其序列化为一个名为list.ser的文件。然后从该文件中反序列化List对象,并打印出反序列化后的List对象。

需要注意的是,在序列化和反序列化List对象时,List中的元素也必须实现Serializable接口,否则会抛出NotSerializableException异常。

0