文章目录
在Node.js中,Buffer类是用于处理二进制数据的实用工具。它是一个全局对象,可以在所有模块中访问,而无需使用
require引入。
更多请查看Node.js中文文档
创建Buffer对象
可以使用以下方法之一来创建一个新的Buffer对象:
-
使用字符串创建:
const buf = Buffer.from('Hello World', 'utf8'); -
使用数组创建:
const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); -
使用Buffer.alloc创建指定大小的Buffer对象:
const buf = Buffer.alloc(10);
Buffer对象的常用方法
1. Buffer.from(string[, encoding])
将一个字符串转换为Buffer对象,其中encoding参数是可选的,用于指定字符串的编码方式,默认为utf8。
2. Buffer.from(array)
将一个数组转换为Buffer对象。
3. Buffer.alloc(size[, fill[, encoding]])
创建一个指定大小的Buffer对象,其中fill和encoding参数都是可选的。fill用于指定初始化时填充的值,默认为0,encoding用于指定编码方式,默认为utf8。
4. buf.toString([encoding[, start[, end]]])
将一个Buffer对象转换为字符串,其中encoding、start和end参数都是可选的。encoding用于指定编码方式,默认为utf8,start和end用于指定转换的起始和结束位置。
5. buf.toJSON()
将一个Buffer对象转换为JSON对象。
6. buf.compare(otherBuffer)
比较两个Buffer对象的大小,返回 -1、0或1。表示第一个Buffer对象小于、等于或大于第二个Buffer对象。
7. buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
将一个Buffer对象复制到另一个Buffer对象中,其中targetStart、sourceStart和sourceEnd参数都是可选的。
8. buf.slice([start[, end]])
提取一个Buffer对象的子集,其中start和end参数都是可选的。
示例
// 创建一个Buffer对象
const buf1 = Buffer.from('Hello World', 'utf8');
// 输出Buffer对象
console.log(buf1); // <Buffer 48 65 6c 6c 6f 20 57 6f 72 6c 64>
// 将Buffer对象转换为字符串
const str = buf1.toString('utf8');
console.log(str); // Hello World
// 比较两个Buffer对象的大小
const buf2 = Buffer.from('hello world', 'utf8');
const result = buf1.compare(buf2);
console.log(result); // -1
// 复制一个Buffer对象
const buf3 = Buffer.alloc(5);
buf1.copy(buf3, 0, 0, 5);
console.log(buf3); // <Buffer 48 65 6c 6c 6f>
// 提取一个Buffer对象的子集
const buf4 = buf1.slice(0, 5);
console.log(buf4); // <Buffer 48 65 6c 6c 6f>










