1.Node.js Buffer(缓冲区)
为了处理TCP流或文件流,Node.js定义的类,专门用来存放二进制数据的缓存区。
一个Buffer类类似于一个整数数组,但它对应于V8堆内存之外的一块原始内存。
建议使用Buffer.from()接口去创建Buffer对象。
Buffer.from(array),传入的array的元素只能是数字,不然就会自动被0覆盖。
buf.toString()读取缓冲区数据。
将Buffer转换为JSON对象buf.toJSON()。将字符串转为Buffer实例时,JSON.stringify会隐式地掉用toJSON()。
缓冲区合并:Buffer.concat(list, [totalLength](指定合并后Buffer对象的总长度))。 返回一个多个成员合并后的新Buffer对象。
缓冲区比较:buf.conpare(otherBuffer); 返回一个数字,表示buf在otherBuffer之前、之后或相同。
拷贝缓冲区:buf.copy(targetBuffer, [targetStart]); 没有返回值。
缓冲区裁剪:buf.slice([start, end]); 返回一个新的缓冲区。
2.Node.js Stream(流)
Stream是一个抽象接口。
四种流类型:Readable可读操作;Writable可写操作 ;Duplex可读可写操作;Transform操作被写入数据,然后读出结果。
所有Stream对象都是EventEmitter的实例。常用数据:
data => 当有数据可读时触发;
end => 没有更多的数据可读时触发;
error => 在接收或写入过程中发生错误时触发;
finish =>所有数据已被写入到底层系统时触发;