Node.js速学之-缓冲区

参考文献:[1][EN]Georgo Ornbo.傅强.陈宗斌. Node.js入门经典[M]. 北京:人民邮电出版社.2013.4-1

JavaScript最初为浏览器设计,能很好的处理Unicode编码的字符串,但是不能很好的处理二进制数据。
需要使用二进制的示例有:TCP/UDP/图像或压缩文件/文件系统读取/来自网络的二进制数据流
Node.js中的缓冲区是处理二进制数据的一种方式,由于JS语言不能很好的处理二进制数据,所以缓冲区上实际上是对原始内存的分配,以便Node.js读写数据,这也让Node.js 有健全的方式处理二进制数据,不必依赖JS。
缓冲区是Buffer的实例,但Buffer模块是全局的,所以不用请求即可使用。

var buffer = new Buffer(8);//创建8字节缓冲区
var buffer = new Buffer([85]);//85等同于字幕U,如果使用UTF8输出,其内容就是U
//缓冲区初始化完成后,就不能再改变尺寸。

一、写入缓冲区

var buffer = new Buffer(8);//创建8字节缓冲区
buffer.write("a","utf8");//占用1字节

二、想缓冲区追加数据

var buffer = new Buffer(8);//创建8字节缓冲区
buffer.write("hi ","utf8");//占用1字节
console.log(buffer.toString());
buffer.write(' there',2,'utf8');//追加数据
console.log(buffer.toString());

终端输出:

hi      
hi there

三、复制缓冲区

buffer.copy(buferToCopyTo);//将整个字符串拷贝
buffer.copy(bufferToCopyTo,2,3,4);//之拷贝部分字符串
//第二个参数->目标应该写入哪个字节?
//三、四->指定缓冲区开始,结束位置

回忆:
1、系统会自动对缓存区进行垃圾回收

分享到:更多 ()