FileOutputStream中的新行

时间:2012-06-16 13:24:58

标签: java outputstream fileoutputstream

下一行的Ascii值是10.所以我尝试了这个......

 FileOutputStream os = new  FileOutputStream(f, true);
    os.write(10);  // this should get me to next line ?
    os.write(b);   // b is a byte array...

2 个答案:

答案 0 :(得分:6)

您应该负责管理跨平台线分隔符,这可以通过多种方式检索:

  • System.getProperty("line.separator")
  • System.lineSeparator()(仅限Java7)
  • String.format("%n")

然后你应该使用DataOutputStream FileOutputStream来处理writeChars(String str),这是因为你可以选择更好的方法,比如

  • writeBytes(String str)
  • writeUTF(String str)
  • {{1}}

这样您就可以使用最适合您的情况。

还要注意,直接在流上写一个字节数组会创建二进制数据,这与使用换行符(与文本相反)有些相反。

答案 1 :(得分:3)

在Windows上,您需要使用13和10作为行分隔符(CR,LF) - 即:

os.write(13);
os.write(10);

因此,如果您希望自己的应用程序与平台无关,则应使用line.separator系统属性中的任何内容,如杰克建议的那样。