2013-10-23 105 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中记录, –