57

我一直在听说流,更具体地说是文件流。

那么它们是什么?

它是在记忆中有位置的东西吗?

它是包含数据的东西吗?

它只是文件和对象之间的连接吗?

4

4 回答 4

56

术语流是一种结构的抽象,它允许您发送或接收未知数量的字节。比喻是水流。您可以随时获取数据,也可以根据需要发送数据。例如,将此与具有固定已知长度的数组进行对比。

使用流的示例包括读取和写入文件、通过外部连接接收或发送数据。然而,术语是通用的,并没有说明具体的实现。

于 2012-08-27T16:01:25.727 回答
12

IOStreams 是一个前端接口(std::istream, std::ostream),用于定义输入和输出函数。流还存储格式化选项,例如,用于整数输出的基数并保存std::locale用于各种定制的对象。它们最重要的组件是指向 a 的指针,std::streambuf它定义了如何访问字符序列,例如文件、字符串、屏幕上的区域等。专门为文件和字符串提供了特殊的流缓冲区,并从提供流基类以便于创建。描述 IOStreams 库的全部功能几乎可以写满整本书:在 C++ 2003 中,大约一半的库部分专门用于与流相关的功能。

于 2012-08-27T16:02:27.187 回答
9

流是线性队列,将文件连接到程序并保持双向数据流。这里的源是任何文件、I/O 设备、硬盘、CD/DVD 等。

基本上流是两种类型 1.Text 流 2.Binary 流

文本流:它是一个排列成一行的字符序列,每行以换行符(unix)结束。

二进制流:它是在计算机主存储器内部编码的数据,未经任何修改。

于 2017-01-26T17:55:54.933 回答
4

文件系统被设计为与各种各样的设备一起工作,包括终端、磁盘驱动器、磁带驱动器等。即使每个设备都不同,文件系统也将每个设备转换为一个称为流的逻辑设备。流是独立于设备的,因此可以使用相同的功能来写入磁盘文件和磁带文件。在更专业的术语中,流提供了程序员和正在使用的实际设备之间的抽象。

于 2015-07-04T10:19:09.660 回答