将JTextArea内容写入文件

时间:2012-05-09 18:32:30

标签: java swing file-io jtextarea

我在Java Swing中有一个JTextArea和一个Submit按钮。 需要将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();
}

请给我一些建议

4 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:2)

将所有\ r和\ n替换为:

System.getProperty("line.separator")

这将使您的代码与平台无关,并在必要时将新行写入文件。

编辑:由于您使用BufferedWriter,您还可以使用newLine() method

答案 2 :(得分:0)

为什么用\r替换\n

行分隔符应为"\r\n"

答案 3 :(得分: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();
        }
    }

希望这有帮助