Buffer.allocUnsafe(size)
在新版本中,由Buffer.allocUnsafe(size)方法替代,来分配一个大小为 size 字节的新建的没有用0填充的Buffer。可以使用buf.fill(0)初始化Buffer实例为0
var buf = Buffer.allocUnsafe(10);
console.log(buf);//<Buffer 75 63 74 42 79 4c 65 6e 67 74>
buf.fill(0);
console.log(buf);//<Buffer 00 00 00 00 00 00 00 00 00 00>Buffer.alloc(size[, fill[, encoding]])
在新版本中,使用Buffer.alloc(size)方法可以生成一个安全的buffer对象,参数size <Integer> 新建的 Buffer 期望的长度;fill <String> | <Buffer> | <Integer> 用来预填充新建的 Buffer 的值。 默认: 0;encoding <String> 如果 fill 是字符串,则该值是它的字符编码。 默认: ‘utf8’
分配一个大小为 size 字节的新建的 Buffer 。 如果 fill 为 undefined ,则该 Buffer 会用 0 填充
var buf = Buffer.alloc(5);console.log(buf);//<Buffer 00 00 00 00 00>
2、new Buffer(array或buffer)。传一个数组或Buffer作为第一个参数,则将所传对象的数据拷贝到Buffer
var buf1 = new Buffer([1, 2, 3, 4, 5]);
console.log(buf1);//<Buffer 01 02 03 04 05>
var buf2 = new Buffer(buf1);
console.log(buf2);//<Buffer 01 02 03 04 05>Buffer.from(array或buffer)
在新版本中,由Buffer.from(array或buffer)方法替代
var buf1 = Buffer.from([1, 2, 3, 4, 5]);
console.log(buf1);//<Buffer 01 02 03 04 05>
var buf2 = Buffer.from(buf1);
console.log(buf2);//<Buffer 01 02 03 04 05>3、new Buffer(string[, encoding])。第一个参数是字符串,第二个参数是编码方式,默认是’utf-8′
var buf1 = new Buffer('this is a tést');
console.log(buf1.toString());//this is a tést
console.log(buf1.toString('ascii'));//this is a tC)st
var buf2 = new Buffer('7468697320697320612074c3a97374', 'hex');
console.log(buf2.toString());//this is a téstNode.js 目前支持的字符编码包括:
‘ascii’ – 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的。
‘utf8’ – 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 。
‘utf16le’ – 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)。
‘ucs2’ – ‘utf16le’ 的别名。
‘base64’ – Base64 编码。当从字符串创建 Buffer 时,这种编码可接受“URL 与文件名安全字母表”。
‘latin1’ – 一种把 Buffer 编码成一字节编码的字符串的方式。









