2011-05-03 84 views
8

我想下面將要打印使用Java語言編寫到一個文本文件

test1的

test2的

TEST3

TEST4

但我似乎無法得到文本到下一行。

請幫

import java.io.*; 

public class MainFrame { 
    public static void main(String[] args) { 
     try { 
     BufferedWriter out = new BufferedWriter(new FileWriter("file.txt")); 
      for (int i = 0; i < 4; i++) { 
       out.write("test " + "\n"); 
      } 
      out.close(); 
     } catch (IOException e) {} 
    } 
} 
+13

你應該接受正確的答案,人們希望拿分。 – MightyPork 2013-12-29 14:46:59

回答

8

你需要有兩個\n\n有一個空行。 嘗試

out.write("test " + "\n\n"); 

在你的情況(有一個\n),這將打破當前行並移動到一個新行(這是下一行),但空行不會來。

換行符可以在platform被信賴的,所以最好使用

public static String newline = System.getProperty("line.separator"); 
+0

out.newLine();也可以工作 – Squareoot 2017-01-12 13:40:29

0

來從Java系統屬性中的新行字符取決於什麼文本編輯器,你用打開文件,什麼您正在使用的操作系統可能必須使用「\ r \ n」而不是「\ n」。

試試看吧。

3

如果要生成文本,可能更容易在BufferedWriter之上創建PrintWriter,並使用PrintWriter中的方法(如println)來完成寫入。

33

嘗試out.newLine();

所以,這將是

for (int i = 0; i < 4; i++) { 
    out.write("test " + "\n"); 
    out.newLine(); 
} 

Source (Java API)

+1

完美的工作,謝謝 – Ricco 2011-05-03 06:39:53

0

考慮你有一個空的catch塊,這可能是因爲你得到一個異常和隱藏它。刪除catch塊並將​​添加到您的方法定義中,這樣如果您遇到異常,您可以看到它。

1

給出的答案 - System.getProperty("line.separator")是不夠好,也儘量out.write("test " + "\r\n");它可能工作,如在某些OS換行符\r\n而不是\n