1. 程式人生 > >FileReader讀取檔案亂碼問題

FileReader讀取檔案亂碼問題

FileReader fr=new FileReader(new File(filePath));
BufferedReader br = new BufferedReader(fr);

直接使用FileReader讀取一個包含中文字元的檔案,將字元輸入流放到BufferedReader中,通過BufferedReader讀取出來的中文字串亂碼.

分析:檔案流讀取時使用的編碼方式和檔案本身編碼方式不同,造成讀取出來檔案亂碼.

解決辦法: 讀取檔案時指定讀取檔案的編碼方式.


InputStreamReader isr = new InputStreamReader(new FileInputStream(new File(filePath)), "UTF-8");
BufferedReader br = new BufferedReader(isr);

使用FileInputStream類讀取檔案流,BufferedReader構造方法只能接收字元流,利用InputStreamReader將位元組流轉化為字元流,同時指定檔案流的編碼方式,將字元流放到 BufferedReader中,進行操作,中文讀取亂碼問題解決.