Buffer与Stream

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buffer与Stream相关的知识,希望对你有一定的参考价值。

参考技术A

Buffer就是缓冲器的意思,这个类主要是内存用来处理原始二进制数据的。
我们知道,二进制是0和1表示的数据,比如1001这样的,但人们很难看懂这是什么意思,因此会提供一部“字典对照表”进行翻译,这个字典也叫 字符集
字符集有ascII、utf-8、gb2312、big5、ansi等等,而Buffer支持的字符集有:

下面看看具体使用。
1、初始化
我们看一下如何创建Buffer。6以上的版本中舍弃了new的方式,改用了alloc和from方法创建。

2、写入缓冲器

3、读取缓冲器

4、拼接缓冲器
Buffer也可以拼接。

我们知道,要读取一个二进制文件,一般是要先读到内存Buffer里面的,对小型文件来说没啥问题,但是对于音频、视频这样动辄几个G的大文件来说就行不通了,因为一下子就会被把内存撑死,也称为“爆仓”现象。
Buffer反正是不成的了,我们应该用一种 部分传输 (chunk)的方式来解决,这就引入了流的概念。
Stream最常用的有两种:可读流和可写流。

pipe就是管子的意思,在gulp中这个方法比较常见。

以上是关于Buffer与Stream的主要内容,如果未能解决你的问题,请参考以下文章

StreamBuffer.php 第 95 行中的 ErrorException:在 laravel 5 中

内存中的buffer与cache

Buffer 与 拥塞控制

glUnmapBuffer(GL_ARRAY_BUFFER) 与 glBindBuffer(GL_ARRAY_BUFFER,0)

buffer与cache的理解

Buffer与Cache