流存在的好处
- 内存:不需要一次性读取全部数据,可以分块读取,分块处理
- 效率:不需要等待数据全部存储之后再进行操作,可以一边存储一边操作
什么是流
- 流是一个抽象接口,Node中有很多对象实现了这个接口
- 流是基于事件的API,用于管理和处理数据,效率很好
流的四种类型
- readable:可读操作
- writable:可写操作
- duplex:可读可写
- transform:操作被写入数据,然后读出结果
流的事件
所有流对象都是EventEmitter的实例,常用事件有:
- data:当有数据可读时触发
- end:当没有数据可读时触发
- error:当接收或者写入出现问题时触发
- finish:当所有数据都已经被写入底层系统时触发
什么时候使用流
- 需要分批次读取适量内容并且到缓存区进行操作
流的应用
- 如果采用数据流的方式,可以定义很小的一块缓冲区,缓冲区存满之后执行回调函数进行处理,避免出现积压
- 利用管道技术,可以把一个流中的内容写入到另一个流中,不同的流串联起来,读取+压缩这样