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中,进行操作,中文读取乱码问题解决.


参考文章:https://blog.csdn.net/wjw521wjw521/article/details/72831704


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM