Java FileOutputStream行分隔符太多

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

所以我正在为一个游戏编写一个工具来进行修改,它运行得很好,但是我遇到了一个问题 将字符串写入文件。 游戏需要UTF-16LE BOM中编码的文件,因此我的代码如下所示:

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