如何将多行从JTextArea保存到Java中的文件



我正在制作一个简单的记事本,它将JTextArea中的内容保存到文件中。但是我有一个问题,我无法保存多行文本。

这是我的代码:

JTextArea textArea = new JTextArea();
File writeFile;
FileWriter fileWriter = null;
BufferedWriter bufWriter = null;
writeFile = new File("note.txt");
try {
    fileWriter = new FileWriter(writeFile);
    bufWriter = new BufferedWriter(fileWriter);
    bufWriter.write(textArea.getText());
    bufWriter.close();
} catch (IOException e) {
    e.printStackTrace();
}

例如,我有一个按钮和一个文本区域。当我输入这样的东西时:

test line 1
test line 2

并按下按钮保存,文件创建。 但是文件的内容,变成这样

test line 1test line 2

请给我一个详细的答案,以便我正确理解。 我是Java GUI的新手。

谢谢。

尝试您的代码后,我看到您的代码仅将文本保存在一行中。 例如,在文本区域中,它看起来像这样

第一行
第二行
第三行

但是在你刚刚得到的文件中

第一行第二行第三行

如果是这种情况,您可以使用此代码

    File writeFile;
    Writer writer = null;
    writeFile = new File("D:\note.txt");
    try {
        writer = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(writeFile), "utf-8"));
        jTextArea1.write(writer);
    } catch (IOException ex) {
        // report
    } finally {
        try {
            writer.close();
        } catch (Exception ex) {/*ignore*/
        }
    }

在此代码中,我们使用来自 jtextarea 本身的 writer,因此它将保存我们在 jtextarea 中看到的文本。

希望这个帮助

最新更新