2012-05-16 137 views
0

我試圖在單擊JButton時將時間戳寫入文件。一旦調用.close(),數據將被寫入該文件,並且任何其他寫入操作都會引發錯誤。我如何寫入數據而不必創建新的FileWriter並覆蓋上一行?將多行寫入文件

+0

我們證明您的代碼。你可能正在關閉你的文件。 – elrado

回答

3

而不是關閉,這是暗含的,你可以在FileWriter對象上調用flush()。這使它保持打開狀態,但強制緩衝的數據寫入文件。 當你完成寫作時,請不要忘記close()

+2

或者,如果您不只想保持手柄處於打開狀態,請以附加模式打開文件。 –

+0

好點。我假設WIT發生的頻率很高,因此關閉並重新打開文件會產生不必要的開銷。但是,如果情況並非如此,關閉和開始追加也是我的選擇。 –

0

您可以讓打印機在點擊之間打開並在其他時間關閉它(也許在表單退出時),也可以爲每次點擊創建一個新的FileWriter並將其附加到文件中已有的內容。

FileWriter writer = new FileWriter("output.txt", true); //true here indicates append to file contents 

如果您選擇保留作家點擊之間開放,那麼你可能想打電話給.flush()上的每個按鈕按下以確保文件是最新的。

0

試試這個,

import java.io.BufferedWriter; 

import java.io.File; 

import java.io.FileWriter; 

import java.io.IOException; 


public class Wr { 

    public static void main(String[] args) throws IOException { 

    File f = new File("viv.txt"); 

    FileWriter fw = new FileWriter(f, true); 

    BufferedWriter bw = new BufferedWriter(fw); 

    bw.write("Helloooooooooo"); 

    bw.close(); 

    } 
}