如何在不覆盖它的情况下在文本文件中添加一行(JAVA)?

时间:2013-07-15 12:45:20

标签: java android line text-files

我的数据存储在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();
    }   
}

2 个答案:

答案 0 :(得分:2)

使用MODE_APPEND

 FileOutputStream output = openFileOutput("latlngpoints.txt",Context.MODE_APPEND);

来自doc

  

文件创建模式:用于openFileOutput(String,int),如果是   文件已存在,然后将数据写入现有文件的末尾   而不是擦除它。

答案 1 :(得分:0)

你也可以尝试这个

        FileWriter fstream = new FileWriter("x.txt",true); //this will allow to append
        BufferedWriter fbw = new BufferedWriter(fstream);
        fbw.write("append txt...");
        fbw.newLine();
        fbw.close();