0

それで、私は改造用のゲーム用のツールを書いています。それはすべて正常に動作していますが、文字列をファイルに書き込む際に問題が発生しました。ゲームには 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){}    
}

fileContent は文字列の ArrayList であり、行区切り文字は含まれていません (これを複数回確認しました)。だから私の問題は、ファイルに書き込まれた行区切りが多すぎることです。例の代わりに:

a
b

私は次のようなものを得ます:

a

b

私が間違っていることは何ですか?

4

0 に答える 0