Node.js:Buffer基础


在Node.js中,Buffer类是用于处理二进制数据的实用工具。它是一个全局对象,可以在所有模块中访问,而无需使用 require引入。

更多请查看Node.js中文文档

创建Buffer对象

可以使用以下方法之一来创建一个新的Buffer对象:

  1. 使用字符串创建:

    const buf = Buffer.from('Hello World', 'utf8');
    
  2. 使用数组创建:

    const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
    
  3. 使用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对象,其中fillencoding参数都是可选的。fill用于指定初始化时填充的值,默认为0,encoding用于指定编码方式,默认为utf8

4. buf.toString([encoding[, start[, end]]])

将一个Buffer对象转换为字符串,其中encodingstartend参数都是可选的。encoding用于指定编码方式,默认为utf8startend用于指定转换的起始和结束位置。

5. buf.toJSON()

将一个Buffer对象转换为JSON对象。

6. buf.compare(otherBuffer)

比较两个Buffer对象的大小,返回 -101。表示第一个Buffer对象小于等于大于第二个Buffer对象。

7. buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])

将一个Buffer对象复制到另一个Buffer对象中,其中targetStartsourceStartsourceEnd参数都是可选的。

8. buf.slice([start[, end]])

提取一个Buffer对象的子集,其中startend参数都是可选的。

示例

// 创建一个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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑九 六千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值