更新:經過一些測試後,我確定文件本身並未被創建,至少根據file.exists檢查。有任何想法嗎?序列化ArrayList android不工作
嗨我試圖序列化陣列列表,當我的應用程序退出並閱讀時它恢復。它似乎並沒有創建該文件。
這是我的代碼。
protected void onPause() {
super.onPause();
if(!myArrayList.isEmpty())
{
final String FILENAME = "myfile.bin";
try{
FileOutputStream fos;
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
//FileOutputStream fileStream = new FileOutputStream(FILENAME);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(myArrayList);
os.flush();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
@SuppressWarnings("unchecked")
@Override
protected void onResume() {
super.onResume();
File file = new File("myfile.bin");
if(file.exists()){
final String FILENAME="myfile.bin";
try{
FileInputStream fileStream = new FileInputStream(FILENAME);
ObjectInputStream os = new ObjectInputStream(fileStream);
myArrayList = (ArrayList<MyObject>)os.readObject();
os.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
}
任何想法? My MyObject類實現可序列化。
你的catch語句中的''e.getMessage()''完全沒有任何作用,所以你基本上默默地忽略了任何拋出的異常。改進錯誤處理將幫助您找出問題所在。 – 2011-03-23 21:47:45
@Chris Knight增加了一些更多的處理filenotfound和ioexcpetion在logcat /錯誤日誌中仍然沒有錯誤。 – 2011-03-23 21:51:43
你可以用新的錯誤處理更新上面的代碼嗎? – 2011-03-23 21:55:06