java - 添加具有 writer 类的新行

标签 java

我有以下代码,我试图在文本文件中写入不同的行,但是当我添加换行符\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/

相关文章:

java - 创建后如何使用StoredProcedure在数据库中设置存储过程的名称

java - 检查应用程序是否在 Android 电子市场上可用

java - 分发 Java 应用程序的最佳方式是什么?

java - geany 提供智能自动缩进?

java - 更新聚合根不是父 pom 的多模块 Maven 项目中模块的版本号

java - 使用 groovy 扩展 Java 类

java - 将字符串分解为 int 数组

java - 如何使用 jarsigner 签署 apk?

java - 从 Drawerlayout 过渡的 Android 导航组件

java - 为什么不能在列表中添加字符串?