Buffer缓冲区的相关操作

目录

一、什么是Buffer?

二、buffer的创建

1、alloc

2、allocUnsafe

3、from

 三、Buffer的操作

1、Buffer与字符串的转换

 2、Buffer的读写

 四、Buffer的溢出


一、什么是Buffer?

Buffer代表一个缓冲区,存储二进制数据,是字节流。我们在网络传输时,就传输的这种字节流。写文件时,也是写的字节流。
Buffer是十六进制。
JS语言没有二进制数据类型,而在处理TCP和文件流的时候,必须要处理二进制数据。所以,其实node是把数据从二进制转换成了十六进制。
NodeJS提供了一个Buffer对象来提供对二进制数据的操作。
Buffer是一个表示固定内存分配的全局对象,也就是说要放到缓存区中的字节要提前确定。


二、buffer的创建

1、alloc

用alloc方法创建的buffer,每一个二进制位都会归零。

//1、alloc
let buf = Buffer.alloc(10);
console.log(buf);

2、allocUnsafe

此方法可能会创建到旧数据,不会自动把二进制位清零。

这种方式没有清零操作,比alloc快

//2、allocUnsafe
let buf2 = Buffer.allocUnsafe(10);
console.log(buf2);

3、from

每个字母的unicode编码对应的10进制数,转换为16进制数存入buffer中

//3、from
let buf3 = Buffer.from('hello');
console.log(buf3);


 三、Buffer的操作

1、Buffer与字符串的转换

let buf4 = Buffer.from([105,108,111,118,101,121,111,117]);
console.log(buf4);
console.log(buf4.toString());//utf-8

 2、Buffer的读写

查看buffer里的元素,修改元素等操作和数组一样。

let buf = Buffer.from('hello');
console.log(buf[0]);
console.log(buf[0].toString(2));//将第一个元素转为二进制


 四、Buffer的溢出

8个二进制位能存的最大十进制数为255。

当溢出时,会自动舍弃高位上的数字,只保留8位二进制数。

//溢出
let buf = Buffer.from('hello');
buf[0] = 361; //舍弃高位数字,361对应的二进制数为0001 0110 1001 ,舍弃之后变为0110 1001 ,对应的16进制数为69,所以运行结果为69

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摸鱼哥myg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值