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










