2
我有一個Android應用程序,我想讀取和寫入ArrayList<MyClass>
到內部存儲。從內部存儲讀取ArrayList
寫入的部分作品(我相信,沒有測試它尚未:-)):
ArrayList<MyClass> aList;
public void saveToInternalStorage() {
try {
FileOutputStream fos = ctx.openFileOutput(STORAGE_FILENAME, Context.MODE_PRIVATE);
fos.write(aList.toString().getBytes());
fos.close();
}
catch (Exception e) {
Log.e("InternalStorage", e.getMessage());
}
}
但我想現在要做的是讀取存儲整個ArrayList和恢復它作爲一個ArrayList像這樣:
public ArrayList<MyClass> readFromInternalStorage() {
ArrayList<MyClass> toReturn;
FileInputStream fis;
try {
fis = ctx.openFileInput(STORAGE_FILENAME);
//read in the ArrayList
toReturn = whatever is read in...
fis.close();
} catch (FileNotFoundException e) {
Log.e("InternalStorage", e.getMessage());
} catch (IOException e) {
Log.e("InternalStorage", e.getMessage());
}
return toReturn
}
我從來沒有讀過Android的文件之前,所以我不知道這是甚至可能的。 但是有沒有一種方法可以在我的自定義ArrayList
中讀取?
似乎合法,但在oi.readObject()Eclipse給我一個「不能從對象轉換爲ArrayList」類型不匹配......我猜投射到ArrayList 在這種情況下不會起作用嗎? –
你可以安全地投下 – Blackbelt
它正在工作:)現在我得到一個警告:類型安全:未經檢查的從對象投射到ArrayList。而且MyClass的成員是[MarkerOption](http://developer.android.com/reference/com/google/android/gms/maps/model/MarkerOptions.html),似乎不是可序列化的...我可以使用Parcelable而不是Serializable來實現嗎? –