繁体   English   中英

使用FileOutputStream将数据结构写入文件吗?

[英]Writing Data Structures to files using FileOutputStream?

我有一个android应用程序,想要存储/检索在onPause()/ onResume()方法上创建的数据结构,以便数据在FileOutputStream / FileInputStream的运行之间持久存在,这是此操作的标准做法。

因此,如何将数据结构保存到文件中以便以后获得(我已经看到了使用String而不是其他对象的示例)? 除了为从字节数组创建它们的所有这些对象构造函数之外,我是否被迫为我的数据结构及其包含的后续对象创建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,然后调用上面的函数。

所有这些正确吗?

在这里查看Serializable库。 这使您可以直接将类写到一个非人类可读的文件中,然后可以用相同的方式将其读回。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM