是否可以将文本区域保存到文件中?
FileWriter fw = new FileWriter(file1.getAbsoluteFile(), true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(txtArea1);
我得到:
txtArea1 无法解析为变量。
我究竟做错了什么?
见JTextComponent.write(Writer)
。
将模型的内容存储到给定的流中。默认情况下,这会将模型存储为纯文本。
因此,您的示例可能类似于:
FileWriter fw = new FileWriter(file1.getAbsoluteFile(), true);
txtArea1.write(fw);
你必须声明它:
JTextArea txtArea1 = new JTextArea();
然后,当你保存它时,保存txtArea1.getText();
我只看到很少的理由将纯文本 GUI 组件保存到文件中。如果只需要保存内容,最好保存可以通过getText()
.
但是,您可能需要存储一些可以完成的设置JTextArea
(标签大小等)。为此,我建议使用XMLEncoder:
XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("save.xml")));
e.writeObject(txtArea1));
e.close();
这将保存所有非默认设置以及内容字符串。序列化也是可能的,但这种格式在不同虚拟机之间的可移植性较差。