文本文件編碼為utf-8,eclipse設(shè)置的工作環(huán)境為gbk編碼
輸出的文本文件,比原文件多了一個?代碼如下public?class?Main?{
public?static?void?main(String[]?args)?throws?IOException?{
File?file?=?new?File("f:\\temp\\1.txt");
InputStreamReader?isr?=?new?InputStreamReader(new?FileInputStream(file),
"utf-8");
//FileReader?fr?=?new?FileReader(file);
FileWriter?fw?=?new?FileWriter("f:\\temp\\2.txt");
//OutputStreamWriter?fw?=?new?OutputStreamWriter(new?FileOutputStream("f:\\temp\\2.txt"),"utf-8");
//?byte[]?b?=?new?byte[2*1024];
int?l;
while?((l?=?isr.read())?!=?-1)?{
fw.write(l);
}
fw.close();
isr.close();
}
}
1 回答
已采納

冥幻影
TA貢獻(xiàn)5條經(jīng)驗 獲得超0個贊
FileWriter在寫出文件時是以系統(tǒng)默認(rèn)的編碼格式輸出的,你輸入文本指定為utf-8,但是你指定輸出文件輸出使用不同編碼,所以多了一個問號,因此對于一些不同編碼格式容易產(chǎn)生亂碼,尤其對于中文字符, 在使用時應(yīng)格外留意。為了解決這個問題,可以使用OutputStreamWriter方法并且指定編碼。
添加回答
舉報
0/150
提交
取消