在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) { Listlist = 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 deserializedList = null; try { FileInputStream fileIn = new FileInputStream("list.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); deserializedList = (List ) 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
从文件中反序列化列表,并将其输出到控制台。