我在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();
}
请给我一些建议
答案 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();
}
}
希望这有帮助