我有这些类(class):“MyClass1”、“MyClass2”、“MyClass3”和“MyMainClass”,
public class MyMainClass implements Serializable {
private String att1, att2, att3;
private int att4, att5, att6;
private LinkedList <MyClass1> myClass1List = new LinkedList<MyClass1>();
private LinkedList <MyClass2> myClass2List = new LinkedList<MyClass2>();
private LinkedList <MyClass3> myClass3List = new LinkedList<MyClass3>();
}
我的程序创建“MyMainClass”的寄存器(对象)并将其存储在 LinkedList 中。我想将对象的 LinkedList 保存在文件中,以便在重新打开程序后获取它们。有什么方法可以做到呢?我尝试过使用 ObjectOutputStream,但不起作用。谢谢。
编辑: 我添加对象的代码(我刚刚阅读了一个示例并尝试过):
public static void addObject (MyMainClass p) {
try {
outputStream = new ObjectOutputStream(new FileOutputStream("myfile.dat"));
outputStream.writeObject(p);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
System.exit(1);
} catch (IOException ex) {
ex.printStackTrace();
System.exit(1);
} finally {
try {
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
} catch (IOException ex) {
ex.printStackTrace();
System.exit(1);
}
}
}
注意:“MyClass1”、“MyClass2”、“MyClass3”是可序列化的。
最佳答案
我会制作“myClass1”、“myClass2”和“myClass3”Serializable ,然后将 myClass1List
、myClass2List
和 myClass3List
(以及您想要保存的任何其他数据)包装在另一个可序列化的类中,以便您可以使用序列化/反序列化一次保存和恢复所有程序状态。
除非myMainClass
是那个包装器,在这种情况下您需要声明它们都实现了Serialized。
关于java - 如何读/写文件中具有链表的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884377/