参考文献:[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、系统会自动对缓存区进行垃圾回收