【问题标题】:How to write new line in Java FileOutputStream如何在 Java FileOutputStream 中编写新行
【发布时间】:2014-08-06 06:11:23
【问题描述】:

我想用FileOutputStream 写一个新行;我尝试了以下方法,但都没有奏效:

encfileout.write('\n');
encfileout.write("\n".getbytes());
encfileout.write(System.getProperty("line.separator").getBytes());

【问题讨论】:

  • 定义“不工作”。
  • 它没有写新行
  • @PavanPatidar:它正在写一个换行符。当然。
  • 尝试执行 encfileout.write("Fant".getbytes()); encfileout.write("\n".getbytes()); encfileout.write("astic".getbytes());如果您在一行中看到整个单词,则您的问题得到确认。特别是 encfileout.write(System.getProperty("line.separator").getbytes());应该工作。
  • @Teddy 它在本地主机上工作,但是当我在我的服务器上部署时它不起作用。

标签: java newline fileoutputstream


【解决方案1】:

这应该可以。可能你忘了打电话给encfileout.flush()

但是,这不是编写文本的首选方式。你应该用PrintWriter 包装你的输出流并享受它的println() 方法:

PrintWriter writer = new PrintWriter(new OutputStreamWriter(encfileout, charset));

或者,您可以从一开始就使用FileWriter 而不是FileOutputStream

FileWriter fw = new FileWriter("myfile");
PrintWriter writer = new PrintWriter(fw);

现在只需调用

writer.println();

完成工作后不要忘记致电flush()close()

【讨论】:

  • 我希望你不介意我添加了缺少的字符集参数。
  • @Pavan 你能解释一下为什么它不是你要找的,所以可以修改答案/提供另一个答案吗?
  • FileWriter 和 PrintWriter 功能丰富。 Printwriter 的 println() 效果很好!!!
【解决方案2】:

这可能是查看器问题...尝试在 EditPlus 或 Notepad++ 中打开文件。 Windows 记事本可能无法识别其他操作系统的换行。您现在在哪个程序中查看文件?

【讨论】:

    【解决方案3】:

    要添加换行符,请使用 fileOutputStream.write(10); 因为十进制值 10 代表 ASCII 中的换行符

    【讨论】:

      【解决方案4】:
      String lineSeparator = System.getProperty("line.separator");
      <br>
      fos.write(lineSeparator.getBytes());
      

      【讨论】:

      • 请考虑在您的回答中添加某种形式的解释。通常不鼓励仅使用代码回答。
      猜你喜欢
      • 1970-01-01
      • 2020-01-09
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-06
      相关资源
      最近更新 更多