Buffer简介
在 Node.js 中, Buffer 对象用来处理二进制数据,在v8堆外分配物理内存, Buffer 类的实例类似于从 0 到 255 之间的整数数组,显示的数据为十六进制,大小是固定的,在创建时已经确定,无法修改。Buffer 类在全局作用域中,因此无需使用 require(‘buffer’).Buffer。
创建buffer
1.Buffer.alloc(size[, fill[, encoding]])
分配一个大小为10字节的新 Buffer。 如果 fill 为 undefined,则用零填充 Buffer。
const buf1 = Buffer.alloc(10);
console.log(buf1);
输出结果:
指定了size为整数2来填充Buffer:
const buf2 = Buffer.alloc(10,2);
console.log(buf2);
输出结果:
encoding指定编码方式:
const buf3 = Buffer.alloc(10,'xutian');
const buf4 = Buffer.alloc(10,'xutian','base64');
console.log(buf3);
console.log(buf4);
输出结果:
2.Buffer.allocUnsafe(size)
创建一个大小为 size 字节的新 Buffer。以这种方式创建的 Buffer 实例的底层内存是未初始化的。 新创建的 Buffer 的内容是未知的,可能包含敏感数据。这个方法比Buffer.alloc()更快,但是返回的Buffer实例可能包含旧数据,不安全。
const buf5 = Buffer.allocUnsafe(10);
console.log(buf5);
输出结果:
因此需要使用fill() 或 write()进行重写。
3.Buffer.from(array)
const buf6 = Buffer.from([1,2,3]);
const buf7 = Buffer.from('xutian');
const buf8 = Buffer.from('xutian','base64');
console.log(buf6);
console.log(buf7);
console.log(buf8);