UPDATE: После небольшого тестирования я определил, что сам файл не создается, по крайней мере, в соответствии с файлом. Есть идеи?Сериализация ArrayList android не работает
Привет Я пытаюсь сериализовать arraylist, когда мое приложение выходит и читает его обратно, когда оно возобновляется. Кажется, он не создает файл.
Вот мой код.
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();
}
}
}
Любые идеи? Класс MyObject реализует serializable.
'' e.getMessage() '' в ваших инструкциях catch не делает абсолютно ничего, поэтому вы по существу молча игнорируете любые заброшенные исключения. Улучшение обработки ошибок поможет вам определить проблему. –
@Chris Knight Добавлен еще один способ обработки filenotfound и ioexcpetion по-прежнему нет ошибок в logcat/журнале ошибок. –
Можете ли вы обновить приведенный выше код с помощью новой обработки ошибок? –