首页 > 解决方案 > 流和缓冲区之间的关系?

问题描述

我是一个新手程序员,你能帮我想象一下什么是流,它是一个固定的字节数组,用于将数据从 ie: 文件传输到 Y 吗?这里的 Y 是什么,是缓冲区还是别的什么?缓冲区以什么方式与流相关?

标签: c

解决方案


流是数据的源(输入流)或接收器(输出流),可及时(或提供)时间(而不是一次全部)。

缓冲区是一个数组(一块内存),用于临时存储数据。输入缓冲区通常由操作系统从输入流中填充;一个输出缓冲区(一旦被程序员填满)被操作系统使用。

想象一下,你想把一个浴缸装满水。您从可以通过水龙头转移的水源开始,例如水箱或公共自来水厂。你在水龙头下放了一个水桶,然后打开它。当桶装满时,你把它倒进浴缸,然后放回水龙头下。你重复这个直到你的浴缸装满为止。

例如,加载文件的工作方式几乎相同。您有一个数据源(磁盘上的文件);您打开一个输入流(一种编程结构,它通常会以磁盘读取它们的速度为您提供数据)。您分配一个缓冲区(一个小内存区域)并告诉系统从流中填充它。当它已满时,您将其附加到为文件内容保留的大块已分配内存中,然后再次填充缓冲区。读取整个文件后,关闭流。


推荐阅读