缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对I/O的数据做临时存储,这部分预留的内存空间叫缓冲区。
缓冲区的作用也是用来临时存储数据,可以理解为是I/O操作中数据的中转站。缓冲区直接为通道(channel)服务,写入数据到通道或从通道读取数据,这样利用缓冲区数据来传递就可以达到对数据高效处理的目的。
使用缓冲区有两个好处:
1、减少实际物理读写次数
2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数
一般在实际过程中,我们一般是先将文件读入内存,再从内存写入到别的地方,这样在输入输出过程中我们都可以用缓存来提升IO性能。
缓冲区, 说白了, 就是一个中介。 比如你要租一个房子, 刚好房子的主人也要出租房子, 你们可以直接联系, 但问题就在于: 房子的主人可能没有时间和你扯太多, 你也没有时间和房子的主人扯这扯那, 这个时候, 中介产生了。 中介有时间和你扯皮, 中介和房子的主人也提前沟通好。
在上面的例子里, 你通过中介一次性把信息反馈给房子主人, 房子主人把自己的要求通过中介一次性给你。 本来,你和房子主人这两个大忙人的空余时间不一致, 不便于沟通, 但有了中介, 就好办事了。 提高了沟通的效率。
缓冲区, 就是中间区, 主要方便两者沟通, 提高效率。 在编程中, 经常会听说这个概念。 在其他地方, 这个概念也经常用到。