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中,進行操作,中文讀取亂碼問題解決.
參考文章:https://blog.csdn.net/wjw521wjw521/article/details/72831704