關(guān)于控制臺(tái)輸出的問題~~~
package?com.imooc.IOStreamReaderWriter; import?java.io.FileInputStream; import?java.io.FileOutputStream; import?java.io.IOException; import?java.io.InputStreamReader; import?java.io.OutputStream; import?java.io.OutputStreamWriter; public?class?IsrAndOswDemo?{ public?static?void?main(String[]?args)?throws?IOException?{ FileInputStream?in?=?new?FileInputStream( "H:\\Users\\MeRos\\Workspaces\\Projects\\測(cè)試文本文件(utf-8)\\src\\測(cè)試文件(utf-8).txt"); InputStreamReader?isr?=?new?InputStreamReader(in);?//?默認(rèn)的項(xiàng)目編碼 FileOutputStream?out?=?new?FileOutputStream("字符流文本.txt"); OutputStreamWriter?osw?=?new?OutputStreamWriter(out,"gbk"); /* ?*?int?c?;?while((c?=?isr.read())?!=?-1){?System.out.print((char)?c);?} ?*/ char[]?buffer?=?new?char[8?*?1024]; int?c; //?批量讀取,放入buffer字符數(shù)組,從第0個(gè)位置開始,最多放buffer.length個(gè) //?返回的是讀到的字符的個(gè)數(shù) while?((c?=?isr.read(buffer,?0,?buffer.length))?!=?-1)?{ String?s?=?new?String(buffer,?0,?c); System.out.print(s); } in.close(); out.close(); isr.close(); osw.close(); } }
我的文件是utf-8 的(存在新建的項(xiàng)目中也是utf-8),測(cè)試項(xiàng)目是gbk的,可是輸出控制臺(tái)之后怎么不會(huì)發(fā)生亂碼呢.????
2015-09-23
因?yàn)槟鉾hile循環(huán)里將字符數(shù)組轉(zhuǎn)換為String類型時(shí),會(huì)自動(dòng)添上項(xiàng)目默認(rèn)編碼(你的是utf-8),只要文本文件的編碼和你輸入流的編碼一樣,控制臺(tái)應(yīng)該就會(huì)正確輸出吧