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