在工作中需要用到生成文件及写入文件内容的,开始时使用FileWriter写入文件内容,在使用生成的文件时,发现编码不正确,于是找FileWriter怎么设置编码,找遍了所有的FileWriter方法都没有设置编码的。于是乎,想到换其它方式解决。现在找到了一种替代的方式。方式如下:
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(sFilePath),"UTF-8");
out.write(sContent);
out.flush();
out.close();
使用FileWriter写入文件内容的代码为:
FileWriter fw=new FileWriter(sFilePath);
fw.write(sContent);
fw.close();
总结:
FileWriter在写文件的时候在中文win下encoding基本是gb2312,在en的win下基本是iso-8859-1,总之不是utf-8。
所以要创建一个utf-8的文件,用FileWriter是不行的。
目前不知道如何更改FileWriter用来写文件的编码方式,因此对于创建utf-8文件使用OutputStreamWriter方式来代替。