Node.js学习随笔四,Buffer和Stream

本文深入探讨了Node.js中的Buffer类,介绍了如何创建、读取、合并、比较及拷贝Buffer对象。Buffer类用于处理二进制数据,是Node.js进行流操作的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Buffer

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。

但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

Buffer对象占用的内存空间是不计算在Node.js进程内存空间限制上的,因此,我们也常常会使用Buffer来存储需要占用大量内存的数据。

简单的读写例子

结果

 

1. 创建

  常用from方法创建Buffer类

  Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)

  Buffer.from(arrayBuffer[, byteOffset[, length]]): 返回一个新建的与给定的 ArrayBuffer 共享同一内存的 Buffer。

  Buffer.from(buffer): 复制传入的 Buffer 实例的数据,并返回一个新的 Buffer 实例

  Buffer.from(string[, encoding]): 返回一个被 string 的值初始化的新的 Buffer 实例

  也可以这样创建

   

  先定义buffer对象的长度,再用write方法写入内容。

2. 读取

  buf.toString([encoding[, start[, end]]])

  编码默认utf8,起始位置默认0,结束位置默认末尾。

   运行输出 “012”。

  toJSON可以返回JSON格式

  { type: 'Buffer',data: [ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 ] }

3. 合并

  Buffer.concat(list[, totalLength])

  list - 用于合并的 Buffer 对象数组列表。

  totalLength - 指定合并后Buffer对象的总长度。

  结果就是“aaabbb”。

4. 比较

  buf.compare(otherBuffer)

  很简单,两个完全相等则返回0。

5. 拷贝,裁剪

  buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

  buf.slice([start[, length]])

   感觉用不太到,做个记录。

 

Stream

所有的 Stream 对象都是 EventEmitter 的实例

基本用法就是这些

 

参考资料

http://www.runoob.com/nodejs/nodejs-buffer.html

http://www.runoob.com/nodejs/nodejs-stream.html

转载于:https://www.cnblogs.com/luyShare/p/9829013.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值