Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中写入文本文件时插入新行_Java - Fatal编程技术网

在Java中写入文本文件时插入新行

在Java中写入文本文件时插入新行,java,Java,我对学习FileWriter有一点兴趣。。。最终目标是编写一个程序,该程序将“生成”一个.bat文件,该文件将由启动.jar的批处理代码执行。问题是,我不知道如何确保每个FileWriter.write()都;将在新行上打印。。。任何想法???使用BufferedWriter并在表示一行的每次写入操作后使用writer.newLine() 或者,使用PrintWriter和writer.println()。要创建新行,只需在字符串末尾附加一个换行符: FileWriter writer = ..

我对学习FileWriter有一点兴趣。。。最终目标是编写一个程序,该程序将“生成”一个.bat文件,该文件将由启动.jar的批处理代码执行。问题是,我不知道如何确保每个FileWriter.write()都;将在新行上打印。。。任何想法???

使用BufferedWriter并在表示一行的每次写入操作后使用writer.newLine()


或者,使用PrintWriter和writer.println()。

要创建新行,只需在字符串末尾附加一个换行符:

FileWriter writer = ...
writer.write("The line\n");
另外,
PrintWriter
类提供了自动为您添加换行符的方法(edit:它还将自动为您的操作系统使用正确的换行符):


如果您使用的是
BufferedWriter
,则可以使用内置方法:

BufferedWriter writer = Files.newBufferedWriter(output, charset);
writer.newLine();

可能重复的
。换行符()
也会为您选择特定于平台的换行符。哦,好的。我明白了。所以FileWriter并不是写入文本文件的最佳工具?PrintWriter是写入文件的最佳工具。至少如果你想写原始数据。但是,由于您实际上希望将文本打印到文件中,因此将FileWriter包装到BufferedWriter或PrintWriter中有助于您处理该问题。@CodeAdmiral我认为
PrintWriter
是将文本写入文件的最佳选择,因为除了提供写入
String
对象的方法外,它提供了写入其他数据类型的方法,如
int
float
double
。要使用
FileWriter
输出
int
,必须将其转换为字符串:
writer.write(myInt+)。使用
PrintWriter
,您只需执行
writer.print(myInt)。这是一个小小的便利,但仍然是一个便利
PrintWriter
还提供了
println()
方法,该方法在末尾自动包含一个换行符。@Michael好的,这很有意义。我选择FileWriter是因为我的Java书籍使用了它。以后我会记住的,谢谢你!!!
BufferedWriter writer = Files.newBufferedWriter(output, charset);
writer.newLine();