简述
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存
Buffer基本使用
完整API:Nodejs中文网
创建Buffer
在 6.0.0 之前的 Node.js 版本中,Buffer 实例是使用 Buffer 构造函数创建的,该函数根据提供的参数以不同方式分配返回的 Buffer new Buffer()
现在可以通过 Buffer.from()、Buffer.alloc() 与 Buffer.allocUnsafe() 三种方式来创建
// 将字符串放到缓冲区
let b1 = Buffer.from('10');
console.log(b1);
console.log(b1.toString());
//初始化缓冲区,创建一个大小为10字节的缓冲区
//保证新创建的缓冲区数据是不会包含旧的数据
let b2 = Buffer.alloc(10);
console.log(b2);
//不会重置数据,慎用
let b3 = Buffer.allocUnsafe(10);
console.log(b3);
修改
b3[0] = '3';
console.log(b3);
console.log(b3.toString());