У меня есть приложение для 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 дает мне «невозможно конвертировать из Object to ArrayList» Тип несоответствия ... Я думаю, что приведение в ArrayList не будет работать в этом случае? –
Вы можете бросить безопасно – Blackbelt
Это работает :) Теперь я получаю предупреждение: Тип безопасности: Непроверенный бросок от Object to ArrayList. А также членом MyClass является [MarkerOption] (http://developer.android.com/reference/com/google/android/gms/maps/model/MarkerOptions.html), который, кажется, не сериализуем ... Могу ли я достичь того же с Parcelable вместо Serializable? –