簡體   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