0

我有一个 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,然后调用上面的函数。

这一切都正确吗?

4

2 回答 2

1

在这里查看 Serializable 库。这允许您将类直接写入非人类可读的文件,然后可以以相同的方式读回。

于 2013-06-21T13:39:09.703 回答
0

使用 JSON 或 XML 序列化数据很常见。否则,您可以查看 google 协议缓冲区以获取更密集的数据文件。

于 2013-06-21T13:40:30.483 回答