流在Node.js中是一种抽象的数据处理接口,它允许数据以连续的方式被读取或写入,而不是一次性加载到内存。这类似于水流,数据像小溪一样缓缓流动,而不是像水库一样蓄积。Node.js中的流主要分为四种类型:可读流(Readable)、可写流(Writable)、双工流(Duplex)和转换流(Transform)。可读流用于读取数据源,比如文件或网络请求;可写流用于输出数据,例如写入文件或发送HTTP响应;双工流则同时支持读写,像TCP套接字;转换流是一种特殊的双工流,可以在数据流动过程中进行修改,比如压缩或加密。理解这些类型是掌握流处理的第一步,它们共同构成了Node.js高效I/O操作的基石。
让我们从一个简单的文件读取例子开始,看看流如何在实际中发挥作用。假设我们需要读取一个大型文本文件,并统计其中特定单词的出现次数。如果使用传统的fs.readFile方法,整个文件会被加载到内存,如果文件太