Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require(‘buffer’)。
静态方法:
- Buffer.isEncoding() 判断是否支持该编码
- Buffer.isBuffer() 判断是否为 Buffer
- Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
- Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
- Buffer.isEncoding() 判断是否支持该编码
// Buffer.isEncoding() 判断是否支持该编码
console.log(Buffer.isEncoding('utf8')); // 返回true
console.log(Buffer.isEncoding('ascii')); // 返回true
console.log(Buffer.isEncoding('utf16le')); // 返回true
console.log(Buffer.isEncoding('ucs2')); // 返回true
console.log(Buffer.isEncoding('base64')); // 返回true
console.log(Buffer.isEncoding('latin1')); // 返回true
console.log(Buffer.isEncoding('binary')); // 返回true
console.log(Buffer.isEncoding('hex')); // 返回true
console.log(Buffer.isEncoding('gbk')); // 返回false
- Buffer.isBuffer() 判断是否为 Buffer
// Buffer.isBuffer() 判断是否为 Buffer
let buf = Buffer.from('Hello');
console.log(Buffer.isBuffer(buf)); // 返回 true
console.log(Buffer.isBuffer({})); // 返回 false
- Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
// Buffer.byteLength() 返回指定编码的字节长度,默认 utf8
let buf_1 = Buffer.from('基础', 'ascii');
console.log(Buffer.byteLength(buf_1));
console.log(buf_1);
console.log(buf_1.toString());
console.log("----------------------");
let buf_2 = Buffer.from('基础', 'utf8');
console.log(Buffer.byteLength(buf_2));
console.log(buf_2);
console.log(buf_2.toString());
console.log("----------------------");
let buf_3 = Buffer.from('基础', 'utf16le');
console.log(Buffer.byteLength(buf_3));
console.log(buf_3);
console.log(buf_3.toString());
console.log("----------------------");
运行结果:
- Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
(1)将初始的2个实例化对象进行合并
// Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
let buf_1 = Buffer.alloc(4);
let buf_2 = Buffer.alloc(5);
let buf_3 = Buffer.concat([buf_1, buf_2]);
console.log(Buffer.byteLength(buf_3)); // 返回字节长度为 9
(2)将字符串进行合并
// Buffer.concat() 将一组Buffer 对象合并为一个 Buffer 对象
let buf_1 = Buffer.from('VV');
let buf_2 = Buffer.from('cat');
let buf_3 = Buffer.concat([buf_1, buf_2]);
console.log(Buffer.byteLength(buf_3)); // 合并后返回字节长度为 5
console.log(buf_3.toString()); // 返回字符串为 VVcat