第十五章输入/输出-15.2理解Java的IO流

15.2理解Java的IO流

 因为Java提供了IO流的抽象,所以卡发着可以使用一致的IO代码去读写不同的IO流节点。

15.2.1流的分类

 按照流的流向来分类,可以分为输入流和输出流

  1. 输入流:只能从中读取数据,而不能向其写入数据
  2. 输出流:只能向其写入数据,而不能从中读取数据

 Java的输入流主要由InputStream和Reader作为基类,输出流主要由OutputStream和Writer作为基类。

字节流和字符流

字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同----字节流操作的数据单元是8位字节,而字符流操作的数据单元是16位字符。

字节流主要是由InputStream和OutputStream作为基类,字符流主要由Reader和Writer作为基类。

PS:Java使用处理流来包装节点流是一宗典型的装饰器设计模式,通过使用处理流来包装不同的节点流,既可以消除不同节点流的实现差异,也可以提供更方便的方法来完成输入/输出功能。因此处理流也被称为包装流。

15.2.2流的概念模型

 Java把所有设备里的有序数据抽象成流模型。Java的IO流共涉及40多个类,看似多实际非常有规则,彼此间存在紧密的联系。Java的IO流的40多个类都是从如下4个抽象基类派生的:

  1. InputStream/Reader:所有输入流的基类
  2. OnputStream/Writer:所有输出流的基类

 

你可能感兴趣的:(Java基础)