Node中的Buffer和Stream

168 阅读1分钟

BUFFER

Node为了使开发者完成更多功能,提供给了我们一个类buffer,并且是全局的

buffer中存储的是二进制数据,可以将buffer看出是一个存储二进制的数组,每一项都保存8位二进制

一、创建buffer的方式

(1)通过from的方式来创建

(2)通过alloc的方式来创建

二、Buffer和文件操作

(1)读取文本文件

通过fs的方法读取到的buffer,再采用toString进行解码

(2)对图片进行操作(复制并重命名)

(3)通过引入sharp库,来对图片进行操作(npm install sharp)

三、Buffer的创建过程

事实上我们创建Buffer时,并不会频繁的向操作系统申请内存,它会默认申请一个8*1024字节大小的内存,

也就是8kb

Stream

什么是流?

程序中的流可以想象成当我们从一个文件中读取数据时,文件的二进制(字节)数据会源源不断的被读取到我们的程序中

文件读写的Stream

事实上Node中很多对象是基于流实现的:

(1)http模块的Request和Response对象

(2)process.stdout对象

官方:另外所有的流都是addEventsEmitter的实例

Node.js有四种基本流类型:

Writable:可以向其写入数据的流(例如fs.createWriteStream())

Readable:可以从中读取数据的流(例如fs.createReadStream())

Duplex:同时为Readable和流Writable(例如net.Socket())

Transform:Duplex可以在写入和读取数据时修改或转换数据的流(例如zlib.createDeflate())

readalbe的使用

\

wirteable的用法

pipe方法的使用