2012-06-01 94 views
4

我學習FileWriter時有一個輕微的刪除行爲...最終目標是編寫一個程序,該程序將「產生」一個.bat文件,該文件將由批處理代碼執行推出了.jar。問題是,我不知道如何確保每個FileWriter.write();將打印一個新的行...任何想法?在寫入Java文本文件時插入新行

+0

可能重複http://stackoverflow.com/questions/3596766/newline-in-filewriter – nXqd

回答

11

要創建新的生產線,只是一個換行符追加到字符串的結尾:

FileWriter writer = ... 
writer.write("The line\n"); 

此外,PrintWriter類提供了自動追加換行字符爲你的方法(編輯:它也將如果你正在使用BufferedWriter那麼你可以使用一個內置的方法

PrintWriter writer = ... 
writer.println("The line"); 
3

使用BufferedWriter,並在每一次寫入操作後使用writer.newLine()代表一行。

或者,使用PrintWriter和writer.println()。

+1

'.newLine()'會爲您選擇特定於平臺的換行符爲好。 –

+0

哦,好的。我明白了。所以FileWriter不是寫入文本文件的最佳選擇? –

+0

PrintWriter可以寫入文件。至少如果你想寫入原始數據。但是由於您實際上想要將文本打印到文件,因此將FileWriter包裝到BufferedWriter或PrintWriter中可以幫助您處理該問題。 – Polygnome

1

:自動使用您的操作系統的正確換行字符串)

BufferedWriter writer = Files.newBufferedWriter(output, charset); 
writer.newLine();