使用换行符将javafx textarea写入文本文件
因此,我目前正在尝试使用formatter类将JavaFXTextArea的内容保存到文本文件中。问题是文本只保存在一行中,没有任何换行符 这是我用来写入文本文件的代码使用换行符将javafx textarea写入文本文件,java,javafx,text-files,formatter,Java,Javafx,Text Files,Formatter,因此,我目前正在尝试使用formatter类将JavaFXTextArea的内容保存到文本文件中。问题是文本只保存在一行中,没有任何换行符 这是我用来写入文本文件的代码 File file = new File(link); Formatter formatter = null; try { formatter = new Formatter(file);
File file = new File(link);
Formatter formatter = null;
try {
formatter = new Formatter(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
formatter.format(textArea.getText() + "\n");
编辑:
我发现了问题:这是Windows记事本的故障。当我在其他文本编辑器(如notepadd++)中打开txt文件时,它工作正常您真的需要使用
格式化程序
类吗?我假设该类(仅)为format参数内容中的%n
占位符(但似乎忽略换行符)生成行分隔符(另请参见相应的):
一种解决方案可能是将格式字符串指定为“%s%n”
(表示要格式化字符串,后跟换行符)并传递TextArea的内容,例如formatter.format(“%s%n”,TextArea.getText())
,如果您确实需要使用格式化程序
否则,您也可以通过一些编写器直接将textArea的内容输出到文件:
FileWriter w = new FileWriter(file);
w.write(textArea.getText());
w.close();
您真的需要使用
格式化程序类吗?我假设该类(仅)为format参数内容中的%n
占位符(但似乎忽略换行符)生成行分隔符(另请参见相应的):
一种解决方案可能是将格式字符串指定为“%s%n”
(表示要格式化字符串,后跟换行符)并传递TextArea的内容,例如formatter.format(“%s%n”,TextArea.getText())
,如果您确实需要使用格式化程序
否则,您也可以通过一些编写器直接将textArea的内容输出到文件:
FileWriter w = new FileWriter(file);
w.write(textArea.getText());
w.close();
您必须关闭格式化程序
formatter.close();
格式化程序输出首先缓冲在内存中。因此,一旦完成,就必须关闭格式化程序
为此使用finally块
try {
//code
} catch{
//code
}
finally {
formatter.close();
}
您必须关闭格式化程序
formatter.close();
格式化程序输出首先缓冲在内存中。因此,一旦完成,就必须关闭格式化程序
为此使用finally块
try {
//code
} catch{
//code
}
finally {
formatter.close();
}
在我的项目中,我将TextArea
的内容编写如下:
byte[] contents = area.getText().getBytes(StandardCharsets.UTF_8);
Files.createDirectories(path.getParent());
Files.write(path, contents, StandardOpenOption.CREATE);
将内容保存为UTF-8编码的文本文件。这包括\n
。考虑到我在Linux上工作,我没有检查它是否真的是\n\r
,我的直觉告诉我它只是\n
在我的项目中,我将文本区域的内容写如下:
byte[] contents = area.getText().getBytes(StandardCharsets.UTF_8);
Files.createDirectories(path.getParent());
Files.write(path, contents, StandardOpenOption.CREATE);
将内容保存为UTF-8编码的文本文件。这包括\n
。考虑到我在Linux上工作,我没有检查它是否真的是\n\r
,我的直觉告诉我它只是\n
我关闭了它,但我忘了在帖子中写,对不起!这里工作很好。你能更新代码包括文本区是什么吗?我关闭了它,但我忘了在帖子里写,对不起!这里工作很好。你能更新代码,包括文本区域是什么吗?我尝试了你的第二个想法,但它没有再次保存换行符。我尝试了你的第二个想法,但它没有再次保存换行符