添加一个带有writter类的新行

时间:2012-09-06 11:03:10

标签: 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

4 个答案:

答案 0 :(得分:5)

在Windows上,默认换行符(由记事本等使用)为"\r\n"。您可以通过调用BufferedWriter.newLine()

来使用平台默认换行符
// This would replace your call to writer.write("\n")
writer.newLine();

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

除此之外,您至少应该考虑使用OutputStreamWriter包裹FileOutputStream而不是FileWriter - 这样您就可以指定要使用的编码,例如UTF-8。目前,您的代码将使用平台默认编码,这可能不是您真正想要的。

答案 1 :(得分:2)

尝试使用System.getProperty(“line.separator”)...

答案 2 :(得分:2)

你试过吗

writer.newLine();

documentation of the JDK说:

提供了一个newLine()方法,它使用平台自己的行分隔符概念,由系统属性line.separator定义。并非所有平台都使用换行符('\ n')来终止行。

所以它应该适用于底层操作系统。

答案 3 :(得分:0)

感谢您的帮助。只是我意识到我的代码与'\ n'运行良好,但问题是写入txt文件,然后使用记事本打开它。记事本忽略\ n但字手不亮。