2013-02-14 133 views
5

我正在使用下面的代碼段將文本寫入文件的每一次調用結束。但是,它正在擦除舊數據,然後將新數據寫入文件的開頭。我如何修復下面的代碼,以便它追加新的數據總是文件的結尾?將文本追加到文件的末尾

public boolean writeToFile(String directory, String filename, String data){ 
    File out; 
    OutputStreamWriter outStreamWriter = null; 
    FileOutputStream outStream = null; 

    out = new File(new File(directory), filename); 

    if (out.exists() == false){ 
       out.createNewFile(); 
    } 

    outStream = new FileOutputStream(out) ; 
    outStreamWriter = new OutputStreamWriter(outStream); 

    outStreamWriter.append(data); 
    outStreamWriter.flush(); 
    }   
+0

你有沒有看着http://stackoverflow.com/questions/1625234/how-to-append-text-to- an-existing-file-in-java – Wizche 2013-02-14 10:16:46

回答

14

嘗試設置追加在FileOutputStreamboolean值爲true:

outStream = new FileOutputStream(out, true); 
outStreamWriter = new OutputStreamWriter(outStream); 
+0

錯誤:'構造函數OutputStreamWriter(FileOutputStream,boolean)未定義' – mavzey 2013-02-14 10:22:06

+4

看着我回答man,FileOutputStream的第二個參數不是'OutputStreamWriter'。 – Sajmon 2013-02-14 10:23:16