下一行的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...
答案 0 :(得分:6)
您应该负责管理跨平台线分隔符,这可以通过多种方式检索:
System.getProperty("line.separator")
System.lineSeparator()
(仅限Java7)String.format("%n")
然后你应该使用DataOutputStream
FileOutputStream
来处理writeChars(String str)
,这是因为你可以选择更好的方法,比如
writeBytes(String str)
writeUTF(String str)
这样您就可以使用最适合您的情况。
还要注意,直接在流上写一个字节数组会创建二进制数据,这与使用换行符(与文本相反)有些相反。
答案 1 :(得分:3)
在Windows上,您需要使用13和10作为行分隔符(CR,LF) - 即:
os.write(13);
os.write(10);
因此,如果您希望自己的应用程序与平台无关,则应使用line.separator系统属性中的任何内容,如杰克建议的那样。