我有以下代码,我试图在文本文件中写入不同的行,但是当我添加换行符\n 时,它不会执行我想要的操作,而是所有行都在同一行上。我怎样才能纠正它?这段代码是这样的
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
最佳答案
在 Windows 上,默认换行符(记事本等使用)是 "\r\n"
。您可以通过调用 BufferedWriter.newLine()
使用平台默认换行符:
// This would replace your call to writer.write("\n")
writer.newLine();
当然,您的文件在非 Windows 机器上可能看起来很奇怪...基本上文本文件并不像您想象的那样可移植。如果您想确保它写入 Windows 换行符,即使您在 Linux 机器上运行,您也可以编写 writer.write("\r\n")
代替。
沿着这些思路,您至少应该考虑使用 OutputStreamWriter
包装 FileOutputStream
而不是 FileWriter
- 这样您就可以指定编码使用,例如UTF-8。目前您的代码将使用平台默认编码,这可能不是您真正想要的。
关于java - 添加具有 writer 类的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12298660/