2013-08-31 31 views
23

我做了一個小文件寫入:的Java:FileWriter的:創建一個新的行

try { 
     FileWriter writer = new FileWriter(new File("file.txt"), false); 
     try { 
      String sizeX = jTextField1.getText(); 
      String sizeY = jTextField2.getText(); 
      writer.write(sizeX); 
      writer.write(sizeY); 
      writer.flush(); 
      writer.close(); 
     } catch (NumberFormatException e) { 
     } 
    } catch (IOException ex) { 
    } 

現在我想打一個新的生產線,就像你可以做到這一點「\ n」個正常,但它似乎並沒有工作...

有誰知道如何使這樣一個新的線?

在此先感謝! :)

+0

'writer.write(「\ n」);' –

+1

'但它似乎不工作'你能發佈你得到的結果嗎? – Pshemo

+1

如果我嘗試「\ n」方法,沒有任何東西......只有1254(sizeX爲12,sizeY爲54)... – lukulus

回答

43

如果你想在目前的操作系統中使用類似\r\n的Windows 新線字符,你可以通過

  • System.getProperty("line.separator");
  • 讓他們因爲Java7 System.lineSeparator()
  • 或由Stewart提到的產生他們通過String.format("%n");

您還可以使用PrintStream及其println方法,這將在你的字符串末尾自動添加依賴於操作系統的行分隔符

PrintStream fileStream = new PrintStream(new File("file.txt")); 
fileStream.println("your data"); 
//   ^^^^^^^ will add OS line separator after data 

(BTW System.out也PrintStream的實例)。

5

嘗試包裝你在BufferedWriterFileWriter

BufferedWriter bw = new BufferedWriter(writer); 
bw.newLine(); 

Javadoc文檔的BufferedWriter here

19

嘗試System.getProperty("line.separator")

writer.write(System.getProperty("line.separator")); 
0

我會解決這個問題是這樣的:

BufferedWriter output; 
    output = new BufferedWriter(new FileWriter("file.txt", true)); 
    String sizeX = jTextField1.getText(); 
    String sizeY = jTextField2.getText(); 
    output.append(sizeX); 
    output.append(sizeY); 
    output.newLine(); 
    output.close(); 

真正的FileWriter的構造函數允許追加。
newLine()方法由BufferedWriter提供
可以作爲解決方案嗎?

1

如果你的意思是使用相同的代碼,但添加一個新行,以便當你添加一些東西到文件它將在一個新的行。你可以簡單地使用BufferedWriter的newLine()
在這裏我也改進了你的代碼:NumberFormatException是沒有必要的,因爲沒有東西被轉換爲數字數據類型,保存變量以使用一次也是。

try { 
    BufferedWriter writer = new BufferedWriter(new FileWriter("file.txt")); 
     writer.write(jTextField1.getText()); 
     writer.write(jTextField2.getText()); 
     writer.newLine(); 
     writer.flush(); 
     writer.close(); 
} catch (IOException ex) { 
    System.out.println("File could not be created"); 
} 
0

這裏「\ n」也工作正常。但問題在於文本編輯器(可能是記事本)。嘗試使用寫字板查看輸出。

+0

聰明的一個!爲我工作,應該爲任務工作。但是對於一個項目,應該使用上述任何突出的方法 –

4

自1.8,我想這可能是值得加入到響應的附加解決方案:

路徑java.nio.file.Files.write(路徑路徑,可迭代線,OpenOption ...選項)拋出IOException異常

StringBuilder sb = new StringBuilder(); 
sb.append(jTextField1.getText()); 
sb.append(jTextField2.getText()); 
sb.append(System.lineSeparator()); 
Files.write(Paths.get("file.txt"), sb.toString().getBytes()); 

如果追加到相同的文件,或者用與Files.write()的追加標誌

Files.write(Paths.get("file.txt"), sb.toString().getBytes(), StandardOpenOption.APPEND);