Node.js简明教程六:stream流

流是用来连续读取/写入数据的对象。在nodejs中,有4种不同类型的流。

  • Readable:用来执行读操作的流
  • Writable:用来执行写操作的流
  • Duplex:可以执行读/写操作的流
  • Transform:也是duplex流,流的输出是基于流的输入

流是EventEmitter对象实例,它会在不同时间触发不同的事件,一些常用的事件如下:

  • data:流中有可读的数据时触发data事件
  • end:没有数据可读时触发
  • error:当有错误发生时触发
  • finish:flush所有数据

读取流

先创建一个文本文件test.txt,内容如下:

在main.js中写入如下代码:


写入流

main.js :

执行:

查看writeout.txt中是否有内容。


管道pipe流

管道可以把一个流的输出做为另一个管道的输入。它通常用来从一个流获取数据,然后写入另一个流。下面是一个管道的例子,从一个文件读数据,然后把数据写入到另一个文件。

流的链式操作

例子,压缩一个文件:

执行之后会在当前目录生成一个test.txt.gz的压缩文件。

解压缩:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注