所以我正在为游戏编写一个用于修改的工具,它工作得很好,但是我在将字符串写入文件时遇到了问题。游戏需要以 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
任何想法,我做错了什么?