下一行的 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...
下一行的 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...
您应该注意管理跨平台行分隔符,这可以通过多种方式检索:
System.getProperty("line.separator")
System.lineSeparator()
(仅限 Java7)String.format("%n")
然后你应该注意使用DataOutputStream
包裹在你的周围FileOutputStream
,这是因为你将被允许选择许多更好的方法,比如
writeChars(String str)
writeBytes(String str)
writeUTF(String str)
以便您使用最适合您的情况。
另请注意,直接在流上写入字节数组会创建二进制数据,这与使用换行符(而是文本)有些相反。
在 Windows 上,您需要使用 13 和 10 作为行分隔符(CR、LF) - 即:
os.write(13);
os.write(10);
因此,如果您希望您的应用程序独立于平台,您应该按照 Jack 的建议使用 line.separator 系统属性中的任何内容。