9.Buffer缓冲区

Buffer缓冲区

产生的原因

用户发给服务器的请求都是二进制数据,数据存储在Buffer中

服务器给客户端的响应中,除了数值,字符串等还有图像、音频、视频等,传统的array数组无法存储这些二进制的文件。

Buffer (缓冲区)

​ ●从结构上看Buffer非常像一 个数组,操作方法也类似与数组
​ ●数组无法存储这些写二进制的文件,buffer就是专门用来存储二进制数据,但是显示时都是以16进制,实际上一个元素就表示内存中的一个字节,范围是00-ff。

​ ●实际上Buffer中的内存不是通过JavaScript分配的,而是在底层通过C+ +申请的。Buffer的大小一旦确定,则不能修改,是对底层内存的直接操作。

​ ●也就是我们可以直接通过Buffer来创建内存中的空间。

Buffer.from(str)

讲一个字符串转换成buffer

var str = "hello 大世界";
var buf = Buffer.from(str);

console.log(buf.length);//占用内存的大小 15
console.log(str.length);//字符串的长度 9

Buffer.alloc(size)方法

创建一个指定大小的buffer,alloc()方法

/*
var buf2 = new Buffer(1024);//10字节的buffer
console.log(buf2.length);
*/
//buffer构造函数是不推荐使用的,会出现问题
var buf2 =Buffer.alloc(10);//创建了10字节的buffer,全部为00.可以通过索引来操作buffer中的元素

buf2[0] = 88;
buf2[1] = 255;
buf2[2] = 0xaa;//输出为170
//只要数字在控制台或者页面中输出的一定是10进制
buf2[3] = 255;

console.log(buf2[2]);
//想看16进制可以将它转换字符串
console.log(buf2[2].toString(16));

挨个显示buffer元素

for(var i=0;i<buf2.length;i++){
    
    console.log(buf2[i]);
    
}

Buffer.allocUnsafe (size)方法

创建一个指定大小的buffer,但buffer中可能含有敏感数据,性能好

var buf3 =Buffer.allocUnsafe(10);

console.log(buf3);//有值,没有清理数据

将Buffer区的数据转化成文字

var buf4 = Buffer.from("我是一段文本数据");

console.log(buf4.toString());
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值