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