[英]Reading from internal storage (deserialization)
我正在使用以下方法從內部存儲讀取:
private void deserialize(ArrayList<Alias>arrayList) {
try {
FileInputStream fis = openFileInput(filename);
ObjectInputStream ois = new ObjectInputStream(fis);
arrayList = (ArrayList<Alias>)ois.readObject();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
它將文件“文件名”的內容讀取到“ arrayList”。
“序列化”方法如下:
void serialize(ArrayList<Alias>arrayList) {
FileOutputStream fos;
try {
fos = openFileOutput(filename, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(arrayList);
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
問題是,每當我再次運行程序時,“ arrayList”為空。 所以我想我以錯誤的輸入模式打開文件。
我的目標是首先從文件中獲取數組,然后在應用程序中對其進行修改,然后將修改后的數組寫回到文件中。
有人可以幫我解決我的問題嗎?
謝謝!
您可以張貼您的源代碼嗎? 我認為您用來解析文件內容的方式會出現問題。
在這里閱讀:
我讀到方法readObject()會讀取下一個對象...這是必須迭代的對象:
MediaLibrary obj = null;
while ((obj = (MediaLibrary)objIn.readObject()) != null) {
libraryFromDisk.add(obj);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.