目标:字符流不同编码读取乱码的问题。 引入: 我们之前用的代码编码和文件编码都是UTF-8编码,字符流读取没有出现乱码!! 字符流读取: 代码编码 文件编码 中文情况。 UTF-8 UTF-8 不乱码! GBK GBK 不乱码! UTF-8 GBK 乱码! 小结: 字符流读取文本文件内容的时候如果代码编码和文件编码不一致将导致读取乱码!
/** * InputStreamReaderDemo: * * @author xiao * @version 1.0 * @Description:字符输入转换InputStreamReader流的使用 * @date: 2019-12-17 23:03 */ public class InputStreamReaderDemo { public static void main(String[] args) throws Exception { //1.先提取文件的原始字节流 InputStream is = new FileInputStream("Sky13daytest/src/第十天代码/resoures/01.txt"); //2.把字节输入流转换字符输入流,使用字符输入流转换 //2.1默认编码UTF-8转字符流 //Reader isr = new InputStreamReader(is,"GBK");//乱码 Reader isr = new InputStreamReader(is,"UTF-8"); //3,把字符流包装成高级的缓冲字符输入流 BufferedReader bfr = new BufferedReader(isr); //4,按照行读取 //4.1定义一个字符串变量,存储读取的数据 String line; while ( (line = bfr.readLine())!=null){ System.out.println(line); } } }