Buffer(缓冲区)

Buffer(缓冲区)

  • Buffer的数据结构和数组很像,操作的方法也和数组类似 。
  • 因为数组中不能存储二进制的文件,所以Buffer就是专门来存储二进制数据的。
  • 使用Buffer时不需要引入模块,直接使用即可。
  • 在Buffer中存储的都是二进制数据,但是在显示时都是以十六进制的形式表现。
var str = "surprise mdf";
//将一个字符串保存到 Buffer 中
var buf = Buffer.from(str);
console.log(buf);
console.log(buf.length); //获取占用内存的大小
console.log(str.length); //获取字符串的长度

Buffer中的一个元素,占用内存的一个字节:

运行结果
## 创建一个指定大小的 Buffer(构造函数创建已弃用,避免使用)

Buffer 的大小一旦确定,则不能修改(直接修改底层内存)

var buf2 = new Buffer(10);//创建一个10字节的 Buffer
console.log(buf2.length); //10
var buf2 = Buffer.alloc(10); //10 分配10字节空间
//通过索引来操作Buffer中的元素
buf2[0] = 88;
buf2[1] = 255;
buf2[2] = 0xaa;//只要数字在控制台或者页面输出一定是10进制
buf2[3] = 555; 
//转换为二进制为1000101011 , 取后八位为00101011,结果为2b
buf2[10] = 15; //超出最大索引,不显示
console.log(buf2);
console.log(buf2[2]);//结果为170
console.log(buf[2].toString(16));//结果为aa

运行结果:

结果

var buf3 = Buffer.allocUnsafe(10);
console.log(buf3);

Buffer.allocUnsafe(size) 性能比 Buffer.alloc(size)好,但是有可能会泄露数据,所以一般还是用后者。

buf.toString()
可以将缓冲区中的数据转换为字符串

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值