java中的IO流使用

IO流体系

四个基类

字节类型:InputStreamOutputStream

字符类型:``ReaderWriter`

常用API

img

完整API体系

序列化时,还学习到了ByteArrayOutputStream流

ByteArrayOutputStream 对byte类型数据进行写入的类 相当于一个中间缓冲层,将类写入到文件等其他outputStream。它是对字节进行操作,属于内存操作流

img

img

IO设计模式

装饰器模式

IO操作时很消耗性能的,缓冲流将数据加载至缓冲区,一次性读取/写入多个字节,从而避免频繁的IO操作,提高流的传输效率

字节缓冲流(BufferedInputStreamBufferedOutputStream)和字符缓冲流(BufferedReaderBufferedWriter)都采用的是**==装饰器模式==**,来增强各自基类的子类对象的功能

字节类型:

BufferedInputStream增强的是FileInputStream

BufferedOutputStream增强的是FileOutputStream

原理就是内部维护了一个字节数组作为缓冲区

字符类型:

BufferedReader增强的是FileReader

BufferedWriter增强的是FileWriter

原理就是内部维护了一个字符数组作为缓冲区

适配器模式

适配器模式用于接口互不兼容的类的协调工作,如下图(仅列出InpuptStreamReader)所示。

转换流的两个类的设计就是两个适配器模式()

转换流解释:

其中InputStreamReader是字节流转换为字符流的桥梁,其子类FileReader是基于该基础上的封装,可以直接操作字符文件。

其中OutputStreamWriter是字符流转换为字节流的桥梁,其子类FileWriter是基于该基础上的封装,可以直接将字符写入到文件。

工厂模式

观察者模式

举例:从控制台读取输入流(三种方法)

img

Contents
  1. 1. IO流体系
    1. 1.1. 四个基类
    2. 1.2. 常用API
    3. 1.3. 完整API体系
  2. 2. IO设计模式
    1. 2.1. 装饰器模式
    2. 2.2. 适配器模式
    3. 2.3. 工厂模式
    4. 2.4. 观察者模式
  3. 3. 举例:从控制台读取输入流(三种方法)
|