对nodejs中流的理解

本文介绍了Node.js中流的使用原因、概念、分类,详细讲解了可读流和可写流的工作模式、事件及常用方法,并通过实例演示了读写操作。流作为一种高效处理大文件和数据的方式,通过事件机制进行数据传输,分为Readable、Writeable、Duplex和Transform四种类型。
摘要由CSDN通过智能技术生成

一,为什么需要流?

        当我们学习一个东西的时候,首先我们要知道为什么要学习?那我们为什么要使用流呢?在node中读取文件的方式有来两种,一个是利用fs模块,一个是利用流来读取。如果读取小文件,我们可以使用fs读取,fs读取文件的时候,是将文件一次性读取到本地内存。而如果读取一个大文件,一次性读取会占用大量内存,效率很低,这个时候需要用流来读取。流是将数据分割段,一段一段的读取,效率很高。

二,流的概念

流是一种抽象的接口,node中很多对象都对它进行了实现。

所有流的对象都是EventEmitter的实例,都实现了EventEmitter的接口。

也就是流具有事件的能力,可以通过发射事件来反馈流的状态。这样我们就可以注册监听流的事件,来达到我们的目的。也就是我们订阅了流的事件,这个事件触发时,流会通知我,然后我就可以做相应的操作了。

三,流的分类

        Readable Stream :可读数据流

        Writeable Stream :可写数据流

        Duplex Stream :双向数据流,可以同时读和写

        Transform Stream: 转换数据流,可读可写,同时可以转换(处理)数据

四,可读流介绍

可读流的两种模式

可读流有两种模式:flowing和paused

1)在流动模式下,可读流自动从系统底层读取数据,并通过EventEmitter接口的事件尽快

将数据提供给应用。

2)在暂停模式下,必须显示调用stream.read()方法来从流中读取数据片段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值