在Java中,要實現列表(List)的序列化,你需要使用java.io.Serializable
接口。這個接口是一個標記接口,沒有任何方法需要實現。你只需要讓你的列表類實現這個接口即可。以下是一個簡單的示例:
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class SerializableListExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// 序列化列表
try {
FileOutputStream fileOut = new FileOutputStream("list.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(list);
out.close();
fileOut.close();
System.out.printf("Serialized data is saved in list.ser");
} catch (IOException i) {
i.printStackTrace();
}
// 反序列化列表
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 i) {
i.printStackTrace();
return;
} catch (ClassNotFoundException c) {
System.out.println("List class not found");
c.printStackTrace();
return;
}
// 輸出反序列化后的列表
System.out.println("Deserialized list:");
for (String item : deserializedList) {
System.out.println(item);
}
}
}
在這個示例中,我們創建了一個包含三個字符串元素的ArrayList
。然后,我們使用ObjectOutputStream
將列表序列化到名為list.ser
的文件中。接下來,我們使用ObjectInputStream
從文件中反序列化列表,并將其輸出到控制臺。