Buffer
Node.js 可以用来处理二进制流数据或者与之进行交互。
Buffer 用于读取或操作二进制数据流,做为 Node.js API 的一部分使用时无需 require,用于操作网络协议、数据库、图片和文件 I/O 等一些需要大量二进制数据的场景。
Buffer基本使用
详细的API 使用可参考 Node.js 中文网。
创建Buffer
在 6.0.0 之前的 Node.js 版本中, Buffer 实例是使用 Buffer 构造函数创建的,即new Buffer()
。
现在可以通过 Buffer.from()、Buffer.alloc() 与 Buffer.allocUnsafe() 三种方式来创建
【注】Buffer.from()从字符串或者数组创建一个buffer, Buffer.alloc()是创建一个指定大小的buffer。
Buffer.from()把数据放入一个buffer
const buffer1=Buffer.from('100');
console.log(buffer1);
//<Buffer 31 30 30>
// 从一个数组创建一个buffer
const buffer2 = Buffer.from([100]);
console.log(buffer2);
// 输出结果<Buffer 64>
const buffer3= Buffer.from('100', 'utf8');
console.log(buffer3);//<Buffer 31 30 30>
const buffer4 = Buffer.from(buffer3);
console.log(buffer4);//<Buffer 31 30 30>
Buffer.alloc()初始化缓冲区
//创建的缓冲区数据不会包含旧的数据
let buffer1=Buffer.alloc(20);
console.log(buffer1);
//<Buffer 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>
//不会重置数据,不太安全
buffer2=Buffer.allocUnsafe(20)
console.log(buffer2)
//<Buffer 00 69 06 80 85 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00>
buffer1[0]=10;
console.log(buffer1)
//<Buffer 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>