小白学习java第12天:IO流之转换流
我们可能会遇到这样情况就是:你在读取那个文件编码类型是GBK,而是进行读取的的时候使用的UTF-8,这就会导致乱码,因为你没办法保证别人是用什么类型进行编写的,因此我们就需要转换流进行处理这种情况!
下面是转换流InputStreamReader、OutputStreamWrite与各种类之间的关系
下面就进行代码展示:(在上面我们需要理解各个流是干什么的,其实就相当于漏斗一样,哪里需要就进行筛选,水管套子一样)
我们一般只需要管别人,别人没办法和我们思想不一定一致,所以我们着重要看的就是输入流,对别人文本进行输入,(因此我们转换流的输出就不做重点要求了!)
package IoCharDemo;
import java.io.*;
public class Test05 {
public static void main(String[] args) throws Exception {
//得到原始数据文件的字节流(GBK类型)
FileInputStream fileInputStream = new FileInputStream("src\\IoCharDemo\\note01.txt");
//根据原始要求指定类型指定字符输入流(类似于套上转换流的管子)
Reader gbk = new InputStreamReader(fileInputStream, "GBK");
//套上缓冲字符输入流
BufferedReader bufferedReader = new BufferedReader(gbk);
String line;
while ((line = bufferedReader.readLine()) != null){
System.out.println(line);
}
}
}