4、说说对Node中的Buffer的理解

Buffer是Node.js中用于处理二进制数据的模块,它是一个内存区域,用于存放网络协议、数据库操作、图片处理等场景中的二进制数据。Buffer类在全局作用域中可用,提供如`Buffer.from()`和`Buffer.alloc()`等创建方法。在处理不同字符编码时需要注意乱码问题,如UTF-8、ASCII和Base64等。Buffer在I/O操作、加密解密和压缩解压等场景中有广泛应用。
摘要由CSDN通过智能技术生成

img

一、是什么

node应用中,需要处理网络协议、操作数据库、处理图片、接收上传文件等,在网络流和文件的操作中,要处理大量二进制数据,而Buffer就是在内存中开辟一片区域(初次初始化为8KB),用来存放二进制数据

在上述操作中都会存在数据流动,每个数据流动的过程中,都会有一个最小或最大数据量

如果数据到达的数据比进程消耗的速度快,那么少数早到达的数据会处于等待区等候被处理。反之,如果数据到达的熟读比进程消耗的数据慢,那么早先到达的数据需要等待一定量的数据到达之后才能被处理。

这里的等待区就指的是缓冲区(Buffer),它是计算机中的一个小物理单位,通常位于计算机的RAM

简单来讲,NodeJs不能控制数据传输的速度和到达时间,只能决定何时发送数据,如果还没到发送时间,则将数据放在Buffer中,即在RAM中,直至将它们发送完毕

上面讲到了Buffer是用来存储二进制数据的,其形式可以理解为一个数组,数组中的每一项,都可以保存8位二进制:00000000,也就是一个字节

例如:

const buffer = Buffer.from('why');

其存储过程如下图所示:

img

二、使用方法

Buffer 类在全局作用域中,无须require导入

创建Buffer的方法有很多种,我们讲讲下面的两种常见的形式:

  • Buffer.from()
  • Buffer.alloc()

Buffer.from()

const b1 = Buffer.from('10');
const b2 = Buffer.from('10', 'utf8');
c
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值