我有一个 android 应用程序,并希望将我在 onPause()/onResume() 方法上创建的数据结构存储/检索到内存,以便数据将通过 FileOutputStream/FileInputStream 在运行之间保持不变,这是标准做法。
那么,如何将数据结构保存到文件中以便稍后获取(我已经看到使用字符串而不是其他对象的示例)?除了为从字节数组创建它们的所有这些对象创建构造函数之外,我是否被迫为我的数据结构及其包含的后续对象创建一个 getBytes() 函数?
编辑:啊,好吧;所以这称为序列化。以下是正确的吗?
来写:
FileOutputStream fileOut = new FileOutputStream("filename");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
读书:
FileInputStream fileIn = new FileInputStream("filename");
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (ObjectType) in.readObject();
in.close();
fileIn.close();
Edit2:此外,数据结构和包含的对象(和子对象)都应该实现 Serializable。例如,如果我有一个 Dogs 的 ArrayLists 的 BST,那么我会让 BST、ArrayList 和 Dog 类都实现 Serializable,然后调用上面的函数。
这一切都正确吗?