【前端】NodeJS:Buffer(缓冲器)

1 概念

  • Buffer是一个类似于数组的对象,用于表示固定长度的字节序列。
  • Buffer本质是一段内存空间,专门用来处理二进制数据 。

2 特点

  • Buffer大小固定且无法调整。
  • Buffer性能较好,可以直接对计算机内存进行操作。
  • 每个元素的大小为1字节(byte)。

3 使用

3.1 创建 Buffer

  • Buffer.alloc
//创建了一个长度为10字节的Buffer,相当于申请了10字节的内存空间,每个字节的值为0
let buf_1 = Buffer.alloc(10); //<Buffer 00 00 00 00 00 00 00 00 00 00>
  • Buffer.allocUnsafe
//创建了一个长度为10字节的Buffer,buffer中可能存在旧的数据, 可能会影响执行结果,但创建速度快
let buf_2 = Buffer.allocUnsafe(10);
  • Buffer.from
//通过字符串创建 Buffer
//每个字符对应的unicode编码,数字再转为二进制存入Buffer
let buf_3 = Buffer.from('hello'); //<Buffer 68 65 6c 6c 6f>,68-十六进制
//通过数组创建 Buffer
let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]) //<Buffer 69 6c 6f 76 65 79 6f 75>

3.2 Buffer与字符串的转化

  • toString方法将Buffer转为字符串。
  • toString默认是按照utf-8编码方式进行转换的。
let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
console.log(buf_4.toString())

3.3 Buffer的读写

  • Buffer可以直接通过[ ]的方式对数据进行处理。
  • 如果修改的数值超过255,则超过8位数据会被舍弃。
  • 一个utf-8的字符一般占3个字节。
//[]
let buf = Buffer.from('hello');
console.log(buf[0].toString(2)); // 01101000
console.log(buf);
buf[0] = 95;
console.log(buf.toString());

//溢出
let buf = Buffer.from('hello');
buf[0] = 361;// 舍弃高位的数字  0001 0110 1001  => 0110 1001
console.log(buf);

//中文
let buf = Buffer.from('你好'); //一个中文占3个字符
console.log(buf);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值