2013-10-23 61 views
0

hello guys我在我的應用程序中有一個將jtextarea上的數據保存爲.txt文件的代碼。 問題是,當我在我的jtextarea上輸入多行文本並將其保存爲「.txt」文件時,整個數據寫爲一行文本。將Jtext區域的確切文本寫入文件

String content = txtDescriptionCity.getText(); //jtextarea 

    File file = new File("C:\\Tour v0.1\\Descriptions\\City\\"+txtcityname.getText()+".txt"); 


      if (!file.exists()) { 
       file.createNewFile(); 
      } 

    FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
    BufferedWriter bw = new BufferedWriter(fw); 
    bw.write(content); 
      bw.close(); 

我想寫的文字,因爲它是對的JTextArea喜歡這張

「文本行一個

文本線兩條

文本行三」

+0

所有的文本將作爲單個字符串出現,您需要拆分字符串,然後將其寫入文本文件。 –

回答

1

如果在那裏通過輸入進線,這樣做:

content = content.replaceAll("\r?\n", "\r\n"); 

這則採用了Windows下的真正的換行符:\r\n(CR + LF)。記事本中沒有顯示單個\n。雖然不太可能。

如果多行是由換行引起的,那麼情況會更加困難。

如果添加空格,

content = content.replaceAll(" +", "\r\n"); 
+0

@ user2136160,不要去所有這些麻煩。只需使用所有Swing文本組件支持的'write(...)'方法即可。 – camickr

0

你可以拆分,然後在我的代碼中寫入,我將根據「。」(fullstops)拆分字符串。

FileWriter fw = new FileWriter(file.getAbsoluteFile()); 
BufferedWriter bw = new BufferedWriter(fw); 
for (String retval: content.split(".")){ 
bw.write(retval+"."); 
bw.newLine(); 
} 
0

首先我們先讀出系統行分隔符,然後大家平分內容字符串並寫入新的字符串數組,該文件的各個部分。 new FileWriter(*,true);認爲內容被追加。

String seperator = System.lineSeparator(); 
    String[] lines = content.split("\n"); 
    FileWriter writer = new FileWriter(file ,true); 
    for (int i = 0 ; i < lines.length; i++){ 
     writer.append(lines[i]+seperator); 

    } 
     writer.close(); 
} 
2

不要重新發明輪子。只需使用:

textArea.write(...); 

它將在適當的新行字符串爲您所使用的平臺的文件替換新行字符。

+0

有趣的是,由於未在javadoc +1中記錄, –