文章目录
1.字节流结构图
2.字节流类讲解
FileInputSteam
可以实现文件的读取,构造方法
FileInputSteam (String pathname)
FileInputSteam (File file)
BufferedInputStream
可实现更加高效的数据读取
构造方法:
BufferedInputStream (InputStream inputSteam);
参数是一个抽象类,我们要使用他的具体子类
一般使用FileInputStream
FileOutputSteam
可以实现数据的写入,构造方法
FileOutputSteam (String pathname)
FileOutputSteam (File file)
BufferedOutputStream
可实现更加高效的数据写入
构造方法:
BufferedOutputStream (OutputStream outputSteam);
参数是一个抽象类,我们要使用他的具体子类
一般使用FileOutputStream
3.字符流结构图
4.字符流类的讲解
为什么要使用字符流?
因为字节流读取文字文件的时候可能会出现乱码的现象。因为对于一个文字来说如果使用UTF-8格式编码的时候占三个字节 ,使用JBK‘编码的时候占用两个字节’
InputStreamReader
是从字节流到字符流的桥梁
他读取字节并使用指定的编码将其解码为字符
构造方法:
InputStreamReader(InputStream inputStr)
使用默认的解码方式吧字节解码为字符(默认方式是utf-8)
参数是一个字节输入流的抽象类,所以我们在创建InputStreamReader
对象的时候要先创建一个字节输入流对象的具体类 比如FileInputStream
InputStreamReader(InputStream inputStr,String charsetName)
使用指定的解码方式吧字节解码为字符(比如utf-8 , gbk等)
参数是一个字节输入流的抽象类,所以我们在创建InputStreamReader
对象的时候要先创建一个字节输入流对象的具体类 比如FileInputStream
FileReader
字符输入流的便捷类
构造方法:
FileReader(String fileParh)
创建对象比较简单,而且直接就可以
调用reade方法进行读取
主要是用起来比较方便
BufferReader
自符缓冲输出入流
构造方法:
BufferReader(Reader reader);
Reader是祖宗抽象类,我们要使用Reader的
具体实现类:比如 FileReader();
OutputStreamReader
是从字符流到字节流的桥梁
他获得字符并使用指定的编码将其编码为字节
构造方法:
OutputStreamReader(OutputStream inputStr)
使用默认的编码方式吧字节编码为字符(默认方式是utf-8)
参数是一个字节输出流的抽象类,所以我们在创建OutputStreamReader
对象的时候要先创建一个字节输出流对象的具体类 比如FileOutputStream
OutputStreamReader(OutputStream inputStr,String charsetName)
使用指定的编码方式吧字节编码为字符(比如utf-8 , gbk等)
参数是一个字节输出流的抽象类,所以我们在创建InputStreamReader
对象的时候要先创建一个字节输出流对象的具体类 比如FileInputStream
FileWriter
字符输出流的便捷类
构造方法:
FileWrter (String fileParh)
创建对象比较简单,而且直接就可以
调用write方法进行数据写入
主要是用起来比较方便
BufferWriter
自符缓冲输出入流
构造方法:
BufferWriter(Writer writer);
参数Wruier是祖宗抽象类,我们要使用Writer的
具体实现类:比如 FileWriter();