在 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(缓冲区)