NodeJs03

2017-07-23  本文已影响0人  社会你码ge

Buffer 缓冲区

--------------------------------------

什么是Buffer

Buffer是用来存储二进制数据的对象 但是结果以16进制的形式表示出来

# Buffer是一个类数组对象,不是数组

Buffer的作用

javascript能够处理字符串,对字符串进行一些操作,但是对于一些二进制数据就没法操作了。

buffer是用来处理二进制文件流和TCP流(http的底层协议)的文件缓存区,可以将二进制流和string进行相互转换

Buffer的特点

buffer对象里面存储的是字节,而不是字符串或者其他的数据类型 主要热点是用来操作字节的

Buffer是一个类数组对象

什么时候用到buffer

用到数据流的地方就会用到buffer(比如文件读取,http中post请求传递的数据)

# EF BB BF 微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节 用来检测一个字节流是否是UTF-8编码的

创建一个buffer对象

var buf = Buffer(字符串);

将一个buffer对象转换为字符串

var str = buf.toString();

-----------------------------------------

流操作(stream) 一般代表文件读写操作

为什么要有流操作

如果读取或者写入一个比较大的文件如(音频或者视频一般为几个G左右),如果使用writeFile或者readFile来操作,非常容易使电脑内存"爆仓",因为电脑内存一般也就4G,8G左右

理想的方法应该是分多次对数据进行读写操作,不管文件有多大,只要时间允许,总会处理完成。这时后就需要有流操作了

什么是流

把一个文件比喻成一个水桶,文件里面的内容比作为水,我们用一根管子(pipe)连接两个桶使得水从一个桶流入另一个桶,这样就慢慢的实现了大文件的复制过程(也就是流的过程)。

从文件读取数据时,可以打开一个文件流,然后从文件

上一篇 下一篇

猜你喜欢

热点阅读