将JTextArea内容写入文件

4

我有一个Java Swing中的JTextArea和一个提交按钮。 需要将textarea的内容写入文件,并保留换行符。 输出结果是将整个字符串一起写入文件。

try {
    BufferedWriter fileOut = new BufferedWriter(new FileWriter("filename.txt")); 
    String myString1 =jTextArea1.getText();
    String myString2 = myString1.replace("\r", "\n");

    System.out.println(myString2);

    fileOut.write(myString2);
    fileOut.close();
} catch (IOException ioe) {
    ioe.printStackTrace();
}

请给我一些建议。

@Charles:我正在尝试学习新的东西 :-) - SK0004
-1,没有研究努力。这个答案在5秒钟内就可以在谷歌上找到。 - MarioDS
我只是好奇:如果您将字符串直接写入文件会发生什么? - Moritz Petersen
4个回答

18

为什么不使用 JTextArea 内置的 write 函数?

JTextArea area = ...
try (BufferedWriter fileOut = new BufferedWriter(new FileWriter(yourFile))) {
    area.write(fileOut);
}

+1 有趣!这是我第一次了解到这种方法。 - Eng.Fouad

2
将所有的 \r 和 \n 替换为:
System.getProperty("line.separator")

这将使您的代码具有平台无关性,并在必要时向文件中写入新行。
编辑:由于您使用了 BufferedWriter,您还可以使用 newLine() 方法

0
你为什么把 \r 替换成了 \n
行分隔符应该是 "\r\n"

2
换行符实际上是与平台相关的。根据底层系统的不同,它可以是\r\n\n\r\n\r - Jeffrey

0

这是我想到的:

public void actionPerformed(ActionEvent event) {
BufferedWriter writer;
        try {
            writer = new BufferedWriter(new FileWriter("SimpleText.txt",
                    false));
            text.write(writer);
            writer.close();
            JOptionPane.showMessageDialog(null, "File has been saved","File Saved",JOptionPane.INFORMATION_MESSAGE);
            // true for rewrite, false for override

        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, "Error Occured");
            e.printStackTrace();
        }
    }

希望这能有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接