2011-04-10 107 views
7

我在GUI中有一個按鈕,當按下按鈕時,用戶可以將信息添加到文本文件。我有這部分設置很好,但是與我混淆的是,當用戶寫入文件時,它會擦除​​文本文件中的所有信息,剩下的唯一一行是剛剛添加的新行。我需要添加信息並仍然保留文本文件中的原始信息。我認爲附加命令能夠做到這一點,但我顯然做錯了什麼。任何幫助都是極好的!Java FileWriter - 附加文本文件行

這裏是我的代碼:

FileWriter fWriter = null; 
    BufferedWriter writer = null; 
    try { 
     fWriter = new FileWriter("info.txt"); 
     writer = new BufferedWriter(fWriter); 


     writer.append(javax.swing.JOptionPane.showInputDialog(this, "add info")); 
     writer.newLine(); 
     writer.close(); 
    } catch (Exception e) { 
    } 

回答

1

你需要writer.flush()PrintWriter默認情況下自動刷新,但不是Writers

+1

'close()'會刷新,這裏沒有必要。 – Mat 2011-04-10 18:45:41

11

使用帶有bool append參數的構造函數。請參閱javadocs的FileWriter

fWriter = new FileWriter("info.txt", true); 
+0

這裏(sun JVM @ ubuntu),它看起來像使用FileWriter(「info.txt」)時,append是首選。在「默認」構造函數的文檔中沒有實際警告的情況下,任何可能會依賴於平臺的機會? – PypeBros 2011-04-12 13:18:24