2014-06-08 86 views
7

我正在開發一個項目,我需要將一些數據打印到文件中。在調試階段,我想覆蓋舊的文本文件,這樣我就不必刪除舊文件來查看我在代碼中所做的一些更改的結果。目前,新的輸出數據要麼被添加到文件中的舊數據中,要麼文件根本不會改變(另外,爲什麼會這樣?)。以下是本質上代碼的打印部分:如何使PrintWriter覆蓋舊文件

public class Test { 
    public static void main(String[] arg) { 
    PrintWriter pw = null; 
    try { 
     pw = new PrintWriter(new FileOutputStream("Foo.txt", true)); 
    } catch (Exception e){} 
    double abra = 5; 
    double kadabra = 7;  
    pw.printf("%f %f \n", abra, kadabra); 
    pw.close(); 
    } 
} 

謝謝!

+0

@Reimeus:謝謝!我有多傻:)任何想法爲什麼新數據可能沒有被追加? –

+0

@AlexandreVandermonde奇怪的是,沒有追加 - 你確定該文件是可寫的? – dasblinkenlight

+1

@dasblinkenlight:在進一步檢查該文件後,我意識到我可能錯誤地聲稱沒有附加內容。我們可以放棄這個問題。不管怎麼說,還是要謝謝你! –

回答

13

Pass false to the append parameter覆蓋該文件:

pw = new PrintWriter(new FileOutputStream("Foo.txt", false)); 

傳遞true第二個參數表示要追加到文件;通過false意味着你想覆蓋文件。

+0

謝謝!我多麼愚蠢:)我會盡快接受你的回答。任何想法爲什麼新數據可能沒有被追加? –