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異常。