IO流体系
四个基类
字节类型:InputStream、OutputStream
字符类型:``Reader、Writer`
常用API

完整API体系
序列化时,还学习到了ByteArrayOutputStream流
ByteArrayOutputStream 对byte类型数据进行写入的类 相当于一个中间缓冲层,将类写入到文件等其他outputStream。它是对字节进行操作,属于内存操作流


IO设计模式
装饰器模式
IO操作时很消耗性能的,缓冲流将数据加载至缓冲区,一次性读取/写入多个字节,从而避免频繁的IO操作,提高流的传输效率
字节缓冲流(BufferedInputStream、BufferedOutputStream)和字符缓冲流(BufferedReader、BufferedWriter)都采用的是**==装饰器模式==**,来增强各自基类的子类对象的功能
字节类型:
BufferedInputStream增强的是FileInputStream
BufferedOutputStream增强的是FileOutputStream原理就是内部维护了一个字节数组作为缓冲区
字符类型:
BufferedReader增强的是FileReader
BufferedWriter增强的是FileWriter原理就是内部维护了一个字符数组作为缓冲区
适配器模式
适配器模式用于接口互不兼容的类的协调工作,如下图(仅列出InpuptStreamReader)所示。
转换流的两个类的设计就是两个适配器模式()
转换流解释:
其中
InputStreamReader是字节流转换为字符流的桥梁,其子类FileReader是基于该基础上的封装,可以直接操作字符文件。其中
OutputStreamWriter是字符流转换为字节流的桥梁,其子类FileWriter是基于该基础上的封装,可以直接将字符写入到文件。
工厂模式
观察者模式
举例:从控制台读取输入流(三种方法)
