在工作中需要用到生成文件及寫入文件內容的,開始時使用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方式來代替。