Stream是大多数面向类编程语言的主要IO模型,是非常重要的语言元素。如何理解stream 类,是理解系统操作的重要问题。这里简单介绍一下有关的内容:
- Stream主要任务是实现程序与系统之间的通讯,使程序和系统之间能像在河流中的船只那样交互。
- 这样就需要有码头(接口),船(内存缓冲区),航运管理部门(接口参数)。
- 内存缓冲区可以对应(接爻)到不同的接口(设备),接口有不同的硬件时序与指令,但是内存缓冲区不需要知道这些底层信息,程序只需要读写内存缓冲区即可。
- 内存缓冲区是由系统管理的,其清空与溢出是由系统负责处理的,程序只需要关心数据输入输出,无需理解内存缓冲区有关的任何操作。
- Stream实际上就对应着内存缓冲区,其他配套内容由系统提供。
- 系统提供一些参数控制stream 的输入输出格式,(通过写端口指令实现)。
- 系统提供一些端口标记用于指定stream使用的设备,(通过定向指令实现)。
- Stream具有设备无关性,状态无关性,无记忆性,这些特性决定了stream的简单易用性和广泛适用性。