Android Внутренняя память - PullRequest
0 голосов
/ 12 июня 2011

Я планировал использовать writeObject для записи списков массивов во внутреннюю память.Тем не менее, я не знаю, как сохранить / восстановить более одного из них.Как и в случае SharedPreferences, он создает пары ключ / значение, но с тремя ArrayLists как я могу сохранить их, а затем восстановить их при необходимости?

1 Ответ

2 голосов
/ 12 июня 2011

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().

...