關於BufferedReader讀取文件指定字符集問題
BufferedReader讀取文件指定字符集問題
默認的讀取方式
BufferedReader bufferedReader = new BufferedReader(new FileReader(realPath));
指定字符集方式
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(realPath),“UTf-8”));
BufferedReader類讀取中文亂碼
解決方法:
BufferedReader in = new BufferedReader(new FileReader(filename, Charset.forName("utf-8")));
在new FileReader類對象的時候,使用
FileReader(String fileName, Charset charset)
這個構造函數傳一個參數指定一下字符集就OK瞭。原因是不指定字符集的話就會使用默認的字符集(一般是GBK),若與要讀取文件的字符集不一致,則即便是字符流也會出現亂碼。
字符集獲取方法(Charset類是不可變類):
Charset.forName(String charsetName)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 使用FileReader采用的默認編碼
- 一文詳解JAVA中InputStreamReader流
- java 使用readLine() 亂碼的解決
- 關於BufferedReader的read()和readLine()的區別
- 使用BufferedReader讀取TXT文件中數值,並輸出最大值