Node.js Stream 流:高效处理大数据
学习如何使用 Node.js Stream API 处理大文件和数据流,提升应用性能。 · 难度:入门 · +15XP
什么是 Stream?
Stream 是 Node.js 中处理流式数据的抽象接口。与一次性读取整个文件到内存不同,Stream 允许你分块处理数据,从而显著降低内存占用,特别适合处理大文件、网络请求等场景。
四种基本流类型
| 类型 | 说明 | 示例 |
|---|---|---|
| Readable | 可读流 | fs.createReadStream |
| Writable | 可写流 | fs.createWriteStream |
| Transform | 转换流 | zlib.createGzip |
| Duplex | 双工流 | net.Socket |
实战:复制大文件
const fs = require('fs');
const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');
readStream.pipe(writeStream);
console.log('文件复制完成!');使用 pipe() 方法可以自动管理数据流动和背压(backpressure),避免内存溢出。
练习提示
修改下方代码,创建一个 Transform 流,将读取的文本全部转换为大写字母后再写入新文件。