FileWriter,FileReader,都是默認使用GBK編碼表(安裝了中文的系統的都是默認GBK)。要對編碼表進行操做,解決網頁的亂碼問題就須要流轉換java
字符流通向字節流的橋樑
,這個流自己能夠操做編碼表函數
|--Writer |--OutputStreamWriter |--FileWriter 自身是一個字符輸出流,用來寫文本文件
public OutputStreamWriter(OutputStream out) public OutputStreamWriter(OutputStream out, String CharsetName)
轉換過程編碼
//建立流對象綁定文件對象 FileOutpurStream fos = new FileOutputStream("xxxxx"); //建立轉換流,經過構造函數轉換流,指定編碼格式 OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK"); //經過轉換流對象來寫入文件 osw.write("xxxx"); //只用關閉轉換流就可關閉輸出流了 osw.close();
字節流通向字符流的橋樑
,這個流自己能夠操做編碼表code
|--Reader |--InputStreamReader |--FileReader 自身是一個字符輸入流,用來讀文本文件
public InputStreamReader(InputStream in) public InputStreamReader(InputStream in, String CharsetName)
轉換過程對象
FileInputStream fis = new FileInputStream(); InputStreamReader isr = new InputStreamReader(fis,"gbk"); char[] ch = new char[1024]; int len = 0; while((len = isr.read()) != -1){ System.out.println(new String(ch, 0, len)); } isr.close()