我的数据存储在一个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)一起使用,如果
  文件已经存在,然后将数据写入现有文件的末尾
  而不是删除它。

07-24 13:26