我一直在听说流,更具体地说是文件流。
那么它们是什么?
它是在记忆中有位置的东西吗?
它是包含数据的东西吗?
它只是文件和对象之间的连接吗?
我一直在听说流,更具体地说是文件流。
那么它们是什么?
它是在记忆中有位置的东西吗?
它是包含数据的东西吗?
它只是文件和对象之间的连接吗?
术语流是一种结构的抽象,它允许您发送或接收未知数量的字节。比喻是水流。您可以随时获取数据,也可以根据需要发送数据。例如,将此与具有固定已知长度的数组进行对比。
使用流的示例包括读取和写入文件、通过外部连接接收或发送数据。然而,术语流是通用的,并没有说明具体的实现。
IOStreams 是一个前端接口(std::istream
, std::ostream
),用于定义输入和输出函数。流还存储格式化选项,例如,用于整数输出的基数并保存std::locale
用于各种定制的对象。它们最重要的组件是指向 a 的指针,std::streambuf
它定义了如何访问字符序列,例如文件、字符串、屏幕上的区域等。专门为文件和字符串提供了特殊的流缓冲区,并从提供流基类以便于创建。描述 IOStreams 库的全部功能几乎可以写满整本书:在 C++ 2003 中,大约一半的库部分专门用于与流相关的功能。
流是线性队列,将文件连接到程序并保持双向数据流。这里的源是任何文件、I/O 设备、硬盘、CD/DVD 等。
基本上流是两种类型 1.Text 流 2.Binary 流
文本流:它是一个排列成一行的字符序列,每行以换行符(unix)结束。
二进制流:它是在计算机主存储器内部编码的数据,未经任何修改。
文件系统被设计为与各种各样的设备一起工作,包括终端、磁盘驱动器、磁带驱动器等。即使每个设备都不同,文件系统也将每个设备转换为一个称为流的逻辑设备。流是独立于设备的,因此可以使用相同的功能来写入磁盘文件和磁带文件。在更专业的术语中,流提供了程序员和正在使用的实际设备之间的抽象。