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

你可能感兴趣的:(Java)