IO流的概念、作用、分类
- 1:流的概念和作用
- 2:流的分类
-
- 2.1 按操作数据单位不同分为:字符流、字节流
- 2.2 按流的角色的不同分为:节点流,处理流
- 2.3 按数据流的流向不同分为:输入流,输出流
- 3:IO 流体系
- 4:抽象基类:InputStream(字节) & Reader(字符)(是所有输入流的基类)
- 5:抽象基类:OutputStream(字节) & Writer(字符)(是所有输出流的基类)
1:流的概念和作用
- 流:代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象
- 流的本质:数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
作用:为数据源和目的地建立一个输送通道
2:流的分类
2.1 按操作数据单位不同分为:字符流、字节流
字符流和字节流的区别:
- 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读取多个字节。
- 处理对象不同:字节流能处理所有类型的数据(如图片、.avi等),字符流只能处理纯文本的数据。
结论:如果处理纯文本的数据优先考虑字符流,其他情况 用字节流。
2.2 按流的角色的不同分为:节点流,处理流
- 节点流:流直接作用在文件上
- 处理流:流作用在已有的流基础上
2.3 按数据流的流向不同分为:输入流,输出流
- 对输入流只能进行读操作,对输出流只能进行写操作,
- 程序中需要根据待传输数据的特性来选择使用不同的流。
3:IO 流体系
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4lFRNFTV65EeVpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzAzM3UDMxgDMxAzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
4:抽象基类:InputStream(字节) & Reader(字符)(是所有输入流的基类)
- InputStream(典型实现:FileInputStream)
- Reader(典型实现:FileReader)
5:抽象基类:OutputStream(字节) & Writer(字符)(是所有输出流的基类)
- OutputStream(典型实现:FileOutStream)
- Writer(典型实现:FileWriter)