我正在计划使用writeObject
将我的数组列表写入内部存储。但是,我不知道如何保存/恢复其中一个以上。与SharedPreferences
一样,它会生成键/值对,但有三个ArrayLists
,如何保存它们,然后在需要时将其还原?
答案 0 :(得分:2)
ObjectOutputStream
在其构造函数中使用java.io.OutputStream
作为参数。由于FileOutputStream
是它的派生类,因此您可以直接使用它。类似的东西:
String FILENAME = "myfile";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();
或者,如果您想使用SharedPreferences
,您只需要一种方法来序列化整个ArrayList(可能使用ObjectOutputStream
到ByteArrayOutputStream
)。
序列化数组的一种非常简单的方法(取决于存储的对象的复杂性)是创建JSONArray
来保存ArrayList值,并使用其内置的toString()
方法。