我一直在尝试一百种不同的方法来解决我的问题,但由于某种原因,它们简单地不起作用。我正在尝试一种快速而肮脏的方式,以使我的应用程序持久化。它基本上得到了很多在销毁时需要保存的对象,所以我想我会让它把对象放入一个 ArrayList 中,然后使用 ObjectOutputStream 将 ArrayList 写入文件。
public void onStop() {
super.onStop();
Log.d("Event", "Stopped");
FileOutputStream fos = null;
ObjectOutputStream oos = null;
try {
fos = openFileOutput("Flights", MODE_WORLD_WRITEABLE);
oos = new ObjectOutputStream(fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<Flight> alFlightList = new ArrayList<Flight>();
Iterator it = flightMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
alFlightList.add((Flight) pairs.getValue());
}
try {
oos.writeObject(alFlightList);
oos.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
Log.d("Info", "File created!");
}
}
我得到了一个类似的算法来再次读取它,但它抱怨没有任何文件可供读取。我知道使用文件进行持久化并不是最佳实践,但正如前面提到的,这应该是一个快速而肮脏的解决方案。(但我现在用在它上面的时间,还不如花在制作数据库上。._.)谢谢!