2012-05-20 20 views
5

我想編寫一個可序列化的對象到內存中的文件。然後,我想稍後從該文件中加載該對象。我怎麼能在Android中做到這一點?Android:寫入和獲取對象

回答

13

首先你的對象必須實現Serializable。不要忘記在可序列化類上添加一個serialVersionUID

然後,如果你不想對象標記它的特定字段保存爲transient。 確保所有字段都是可序列化的。

接下來在內部存儲器中創建一個文件並創建一個ObjectOutputStream來保存您的對象。如果你想在一個特定的文件夾來保存你可以創建這樣的路徑:

File path=new File(getFilesDir(),"myobjects"); 
path.mkdir(); 

然後你就可以使用這條道路,以節省您的對象:

File filePath =new File(path, "filename"); 
FileOutputStream fos = new FileOutputStream(filePath); 
ObjectOutputStream oos = new ObjectOutputStream(fos);    

oos.writeObject(object); 
oos.close(); 

閱讀是相似的:

FileInputStream fis = new FileInputStream(file); 
ObjectInputStream in = new ObjectInputStream(fis);    

MyObjectClass myObject = (MyObjectClass) in.readObject(); 

in.close();