将Jtext区域的确切文本写入文件

时间:2013-10-23 13:50:31

标签: java swing io jtextarea filewriter

你好我们在我的应用程序中有一个代码,它将jtextarea上的数据保存到.txt文件中。 问题是当我在我的jtextarea上键入多行文本并将其保存到“.txt”文件时,整个数据写成一行文本。

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上写文本...就像这样

“文字第一行

第二行文字

文字第三行“

4 个答案:

答案 0 :(得分:2)

不要重新发明轮子。只需使用:

textArea.write(...);

它将使用您正在使用的平台的正确新行字符串替换Document中的换行符。

答案 1 :(得分:1)

如果按Enter键输入的行,请执行:

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

然后使用Windows下的实际换行符:\r\n(CR + LF)。记事本中未显示单个\n。不太可能。

如果多行是由自动换行引起的,那么案件就更难了。

如果添加空格,

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

答案 2 :(得分:0)

你可以拆分然后写我的代码,我根据“。”(fullstops)拆分字符串。

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

答案 3 :(得分:0)

首先我们读出系统行分隔符,然后我们拆分内容String并将新String Array的每个部分写入文件。 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();
}