JavaIO--转换流

91 阅读1分钟

概述

转换流的由来是,Reader在以字符的方式读取文件的时候,通常是以utf-8的编码格式进行读取的。也就是说,如果读取的文件是以utf8的形式进行编码的,那么可以正常读取,不会输出乱码。也可以这么说,在IDEA上,字符的显示默认是以utf-8的形式进行显示的 这个就是直接读取的latin编码的文件,显然和当下控制台的字符集匹配不上。简而言之吧!就是你读了一个latin编码的字符,但是你却想以utf8的形式读出来,显然不可能,会乱码
��־ΰ���첻�ϰ�

BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
System.out.println(bufferedReader.readLine());
bufferedReader.close();

转换流

为了解决这个问题,才有的转换流。因为这样的话,可以按照指定的编码格式,把二进制的字节流数据转换成指定编码格式的字符流。

FileInputStream fileInputStream = new FileInputStream(path);
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"gbk");
BufferedReader bufferedReader1 = new BufferedReader(inputStreamReader);
System.out.println(bufferedReader1.readLine());

只能这样,你才能正常地把文件的信息读出来。要不然,你直接用utf-8的编码格式读gbk格式编码的信息。绝对读不出来。