Stream 流式处理
解决的核心问题
3. 核心特性
Readable Stream(可读流)
import fs from "node:fs";
// 创建文件可读流
const readableStream = fs.createReadStream("./example.txt", {
encoding: "utf-8", // 配置数据编码,默认返回 Buffer
highWaterMark: 64 * 1024, // 每次读取的块大小(默认 64KB)
});
// 监听数据块
readableStream.on("data", chunk => {
console.log(`读取到数据块,长度:${chunk.length}`);
console.log(`数据库内容:${chunk.substring(0, 50)}...`);
});
// 监听读取完成
readableStream.on("end", () => {
console.log("文件数据读取完成");
});
// 监听读取错误
readableStream.on("error", err => {
console.error("文件读取失败:", err.message);
});Writable Stream
Duplex Stream(双工流)
Transform Stream(转换流)
Stream 的核心事件与方法
核心事件
核心方法
可写流(Writable)特有事件与方法
核心事件
核心方法
管道(Pipe)与链式操作
多流组合
背压机制详解
背压的自动处理(pipe() 内置支持)
Stream 的典型应用场景
大文件复制/迁移
HTTP 服务端响应大文件下载
数据压缩与解压缩
终端输入输出交互
最后更新于