0

大家好,我的应用程序中有一个代码,可以将 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

4 回答 4

2

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

textArea.write(...);

它将用您正在使用的平台的正确换行符替换文档中的换行符。

于 2013-10-23T15:18:21.060 回答
1

如果通过 Enter 输入的行,请执行以下操作:

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

然后在 Windows 下使用真正的换行符:\r\n(CR+LF)。\n记事本中不显示单曲。不过不太可能。

如果多行是由自动换行引起的,情况就比较困难了。

如果通过添加空格,

content = content.replaceAll("  +", "\r\n");
于 2013-10-23T13:59:10.390 回答
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();
}
于 2013-10-23T14:02:17.180 回答
0

您可以拆分然后编写,在我的代码中,我根据“。”(句号)拆分字符串。

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
for (String retval: content.split(".")){
bw.write(retval+".");
bw.newLine();
}
于 2013-10-23T13:58:20.010 回答