我的数据存储在一个ArrayList中,其大小在程序执行期间会增加。
每当大小增加时,我设法保存了所有数据,但这使我覆盖了已存储的数据。
解决方案是直接转到最底行,然后插入ArrayList的最后一个单元格的内容。不幸的是,我不知道如何实现它。
谢谢您的帮助。
下面是我使用的方法。
private void SaveLocationData(){
try {
FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_PRIVATE);
DataOutputStream dout = new DataOutputStream(output);
dout.writeInt(LocationList.size());
for (Location location : LocationList) {
dout.writeUTF(location.getLatitude() + "," + location.getLongitude());
}
dout.flush(); // Flush stream ...
dout.close(); // ... and close.
} catch (IOException exc) {
exc.printStackTrace();
}
}
最佳答案
使用MODE_APPEND
:
FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_APPEND);
从doc:
文件创建模式:与openFileOutput(String,int)一起使用,如果
文件已经存在,然后将数据写入现有文件的末尾
而不是删除它。