添加一个带有writter类的新行

use*_*291 0 java

我有以下代码我试图在文本文件中写入不同的行,但是当我添加换行符时,它不执行我想要的操作而是所有行都在同一行.我该如何纠正?代码部分就是这个

Writer writer = null;
File file = new File("C:/output.txt");
writer = new BufferedWriter(new FileWriter(file));
//code to iterate 
writer.write(output);
writer.write("\n");
// code to close each line
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

在Windows上,默认换行符(由记事本等使用)是"\r\n".您可以通过调用BufferedWriter.newLine()以下命令来使用platform-default换行符:

// This would replace your call to writer.write("\n")
writer.newLine();
Run Code Online (Sandbox Code Playgroud)

当然,你的文件在非Windows机器上可能看起来很奇怪...基本上文本文件不像你想象的那样便携.如果你想确保它写入Windows换行符,即使你正在运行(例如)一个Linux盒子,你也要写writer.write("\r\n").

沿着这些方向,你应该至少考虑使用OutputStreamWriter包装FileOutputStream而不是FileWriter- 这样你可以指定要使用的编码,例如UTF-8.目前,您的代码将使用平台默认编码,这可能不是您真正想要的.