每天学习一点点,成功增加一大步

NodeJS基础:Buffer(缓冲区)

NodsJS zhanghui 450℃

在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。

以下是 Buffer 类的各种用法:https://github.com/366065186/nodejs-demo/blob/master/buffer.js

 // 数组形式
var buf = new Buffer(26);
for (var i=0; i<26; i++) {
    buf[i] = i+97;
}
console.log(buf.toString());
console.log(buf.toJSON(buf));
console.log('\r\n');

// 字符形式
var url = new Buffer('blog.pkcms.cn');
console.log(url.toString());
console.log(url.toJSON(url));
console.log('\r\n');

// 缓冲区合并
var name = new Buffer('PKCMS博客');
var name_url = Buffer.concat([name, url]);
console.log('name_url:'+name_url.toString());
console.log('\r\n');

// 缓冲区比较
var buf_abc = new Buffer('ABC');
var buf_abcd = new Buffer('ABCD');
var result = buf_abc.compare(buf_abcd);
if(result < 0) {
   console.log(buf_abc + " 在 " + buf_abcd + "之前");
}else if(result == 0){
   console.log(buf_abc + " 与 " + buf_abcd + "相同");
}else {
   console.log(buf_abc + " 在 " + buffer2 + "之后");
}
console.log('\r\n');

// 拷贝缓冲区
var buf_copy_to = new Buffer(3);
buf_abc.copy(buf_copy_to);
console.log('buf_copy_to content:'+buf_copy_to.toString());
console.log('\r\n');

// 缓冲区裁剪
var buf_slice_to = buf_abcd.slice(0,2);
console.log('buf_slice_to content:' + buf_slice_to);
console.log('\r\n');

// 缓冲区长度
console.log('buffer length: ' + buf_abcd.length);
console.log('\r\n');

转载请注明:隨習筆記 » NodeJS基础:Buffer(缓冲区)