Java FileOutputStream行分隔符太多
所以我正在为一个游戏编写一个工具来进行修改,它运行得很好,但是我遇到了一个问题 将字符串写入文件。 游戏需要UTF-16LE BOM中编码的文件,因此我的代码如下所示:Java FileOutputStream行分隔符太多,java,lines,fileoutputstream,byte-order-mark,utf-16le,Java,Lines,Fileoutputstream,Byte Order Mark,Utf 16le,所以我正在为一个游戏编写一个工具来进行修改,它运行得很好,但是我遇到了一个问题 将字符串写入文件。 游戏需要UTF-16LE BOM中编码的文件,因此我的代码如下所示: public void save() { FileOutputStream fos = null; byte[] buffer = null; try { fos = new FileOutputStream(new File("data//backup.txt")); } cat
public void save()
{
FileOutputStream fos = null;
byte[] buffer = null;
try {
fos = new FileOutputStream(new File("data//backup.txt"));
} catch (FileNotFoundException ex) {
}
try
{
fos.write((byte)255);
fos.write((byte)254);
fos.write("\"lang\"\n".getBytes("UTF-16LE"));
String s = "";
for(int i = 1;i<fileContent.size();i++)
{
s = fileContent.get(i);
fos.write(s.getBytes("UTF-16LE"));
fos.write(System.getProperty("line.separator").getBytes("UTF-16LE"));
}
fos.close();
}
catch(Exception e){}
}
我得到的结果是:
a
b
有什么想法吗,我做错了什么?您是否在不同的操作系统上运行程序,而不是在可视化输出的操作系统上运行程序,例如,在Linux上运行并从Windows打开文件?没有,它仅在Windows上运行。最后一行也是空的还是
b
?最后一行是b。问题是,它们之间也有一条空线。但是我仍然需要在该文件中写入空行的可能性。Hmmm,如果您将fos.write(System.getProperty(“line.separator”).getBytes(“UTF-16LE”))放在代码>在注释中?
a
b