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

4

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


可能是重复问题 https://dev59.com/aFDTa4cB1Zd3GeqPGh4M - Dzung Nguyen
3个回答

11

要创建新行,只需在字符串末尾添加换行符即可:

FileWriter writer = ...
writer.write("The line\n");

此外,PrintWriter类还提供了一些方法,可以自动为您追加换行符(编辑:它还会自动使用适合您操作系统的正确换行字符串):

PrintWriter writer = ...
writer.println("The line");

3

使用 BufferedWriter,在每个表示一行的写操作之后使用 writer.newLine()。

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


1
.newLine() 会为您选择特定于平台的换行符。 - David B
哦,好的。我明白了。所以FileWriter并不是最适合写入文本文件的工具? - fr00ty_l00ps
PrintWriter是用于写入文件的好工具,至少在你想要写入原始数据时是这样。但是由于你实际上想要将文本打印到文件中,因此将FileWriter包装成BufferedWriter或PrintWriter有助于你处理这个问题。 - Polygnome
1
@CodeAdmiral 我认为PrintWriter是写入文本文件的最佳选择,因为除了提供写入String对象的方法外,它还提供了写入其他数据类型如intfloatdouble的方法。如果要使用FileWriter输出一个int,你需要将其转换为字符串:writer.write(myInt + "");。而使用PrintWriter,你只需简单地写writer.print(myInt);。这虽然只是一个小便利,但确实很方便。PrintWriter还提供了println()方法,自动在末尾包含换行符。 - Michael
@Michael 好的,我明白了。我选择FileWriter是因为我所用的Java书籍使用它。我会记住这一点,谢谢! - fr00ty_l00ps
显示剩余2条评论

1
如果您正在使用BufferedWriter,那么您可以使用内置方法:
BufferedWriter writer = Files.newBufferedWriter(output, charset);
writer.newLine();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接