Buffer初识

  Buffer类用于在TCP流、文件操作系统、以及其他上下文中与八位字节流进行交互。
Node.js可以用来处理二进制流数据或者与之进行交互。

Buffer用于读取或操作二进制数据流。用于操作网络协议,数据库,图片和文件I/O等一些需要大量二进制数据的场景。

什么是Stream(流)?
  大量的二进制文件0101需要切分为多个块,这时就需要流。
举个栗子:
  我们现在有一大罐水需要浇一片菜地,如果我们将水一下全倒入菜地,首先需要多麽大的力气(这里力气好比计算机硬件性能)才能搬得动。如果我们拿来水管将水一点一点流入菜地,事情会变得简单。

Buffer(缓冲区) 就是专门划出来的区用来给CPU缓冲。
举个栗子:
通常公共汽车每隔十几分钟一趟,在这个时间到达之前就算乘客已经满了,车辆也不会提前发车,早到的乘客就需要先在车站进行等待。假设到达的乘客过多,后到的一部分则需要在公共汽车站等待下一辆车。

创建Buffer
在6.0.0之前的Node版本中使用new Buffer 但这种方法有弊端。

const b1 = Buffer.from('10');
console.log(b1)
console.log(b1.toString())

// 初始化缓冲区,创建一个大小为10个字节的缓冲区
// 保证新创建的缓冲区数据是不会包含旧的数据
let b2 = Buffer.alloc(10)
console.log(b2)

//不会重置数据,不安全,需要谨慎使用
let b3 = Buffer.allocUnsafe(10)
console.log(b3)

b3[0] = '1'
console.log(b3)
console.log(b3[0].toString())

缓冲区比普通的数组效率高很多,底层是用C重写的。不写人工智能或者对数据大量操作,很少对缓冲区进行操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值