我需要在文件中写/读ArrayList<Marker>
。
这是我到目前为止所做的:
保存列表:
private void saveToFile(ArrayList<Marker> arrayList) {
try {
FileOutputStream fileOutputStream = openFileOutput("test.txt", Context.MODE_PRIVATE);
ObjectOutputStream out = new ObjectOutputStream(fileOutputStream);
out.writeObject(arrayList);
out.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
加载列表
private ArrayList<Marker> loadFromFile() {
ArrayList<Marker> savedArrayList = null;
try {
FileInputStream inputStream = openFileInput("test.txt");
ObjectInputStream in = new ObjectInputStream(inputStream);
savedArrayList = (ArrayList<Marker>) in.readObject();
in.close();
inputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return savedArrayList;
}
当我运行代码时,我得到ClassNotFoundException
。
问题是我需要将整个ArrayList<Marker>
存储为对象。
我找到了一个解决方案,它将Marker
分隔为lat / long并将其作为数字写入文本文件,但它不适合我。
我知道Marker
类不是Serializable
,而是如何将它保存为整个对象?