Android内部存储

时间:2011-06-12 04:56:45

标签: android storage sharedpreferences

我正在计划使用writeObject将我的数组列表写入内部存储。但是,我不知道如何保存/恢复其中一个以上。与SharedPreferences一样,它会生成键/值对,但有三个ArrayLists,如何保存它们,然后在需要时将其还原?

1 个答案:

答案 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(可能使用ObjectOutputStreamByteArrayOutputStream)。

序列化数组的一种非常简单的方法(取决于存储的对象的复杂性)是创建JSONArray来保存ArrayList值,并使用其内置的toString()方法。