使用行分隔符将 JTextArea 中的内容保存到文件中
Saving content from JTextArea into file with line separators
我在写入文件时遇到问题。
通常我正在创建简单的文本编辑器。我以这种方式加载文件:
try(BufferedReader br = new BufferedReader(new FileReader(currentlyEditedFile))) {
String line = "";
editor.setText("");
while((line = br.readLine()) != null) {
editor.append(line + "\n");
}
} catch(Exception ex) {
ex.printStackTrace();
}
经过一些修改,我想把它保存(写)回文件。
我是这样做的:
try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentlyEditedFile)))) {
String[] lines = editor.getText().split("\n");//Tried \n, \n
for(String s : lines)
pw.println(s);
} catch(Exception ex) {
ex.printStackTrace();
}
内容进入文件,但全部在一行中。任何想法如何逐行编写?
如果您正在使用 Windows,那么您应该这样做:
editor.append(line + "\r\n");
因为Windows中的换行用\r\n
表示,即回车-return和换行。
您可以通过以下简单的方式将文本文件的内容加载到 JTextArea
中:
JTextArea textArea = new JTextArea();
FileReader reader = new FileReader("D:/text1.txt");
textArea.read(reader, "Content of File");
reader.close();
您可以通过以下简单且独立于平台的方式将 JTextArea
的内容写入文件:
PrintWriter pw=new PrintWriter("D:/text1.txt");
textArea.write(pw);
pw.close();
希望对您有所帮助。
我在写入文件时遇到问题。
通常我正在创建简单的文本编辑器。我以这种方式加载文件:
try(BufferedReader br = new BufferedReader(new FileReader(currentlyEditedFile))) {
String line = "";
editor.setText("");
while((line = br.readLine()) != null) {
editor.append(line + "\n");
}
} catch(Exception ex) {
ex.printStackTrace();
}
经过一些修改,我想把它保存(写)回文件。
我是这样做的:
try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentlyEditedFile)))) {
String[] lines = editor.getText().split("\n");//Tried \n, \n
for(String s : lines)
pw.println(s);
} catch(Exception ex) {
ex.printStackTrace();
}
内容进入文件,但全部在一行中。任何想法如何逐行编写?
如果您正在使用 Windows,那么您应该这样做:
editor.append(line + "\r\n");
因为Windows中的换行用\r\n
表示,即回车-return和换行。
您可以通过以下简单的方式将文本文件的内容加载到 JTextArea
中:
JTextArea textArea = new JTextArea();
FileReader reader = new FileReader("D:/text1.txt");
textArea.read(reader, "Content of File");
reader.close();
您可以通过以下简单且独立于平台的方式将 JTextArea
的内容写入文件:
PrintWriter pw=new PrintWriter("D:/text1.txt");
textArea.write(pw);
pw.close();
希望对您有所帮助。