Stream
Stream 是 Node.js 中的一个抽象接口,它可以用来处理流式数据。
Stream 将数据分成一小块一小块的,然后逐步处理每一块数据。这种处理方式可以减少内存占用,提高数据传输和处理效率。
类型
Readable:可读流是一种用于从源中读取数据的流。例如从文件中读取数据或从 HTTP 请求中读取数据。
Writable:可写流是一种用于向目标中写入数据的流。例如向文件中写入数据或向 HTTP 响应中写入数据。
Duplex:双工流是一种同时支持读取和写入的流,例如 SSH 会话。
Transform:转换流是一种双工流,可以在读取和写入数据时对数据进行转换。例如在压缩或加密数据时使用。
方法
readableStream
javascript
const fs = require('fs');
const readableStream = fs.createReadStream('./template.html', {
highWaterMark: 100
});
readableStream.on('data', chunk => {
console.log(chunk.length);
});
readableStream.on('end', () => {
console.log('读取完成');
});
pipe()
将一个可读流的数据传输到一个可写流中
javascript
const fs = require('fs');
const readableStream = fs.createReadStream('input.txt');
const writableStream = fs.createWriteStream('output.txt');
// 将 input.txt 内容写入到 output.txt,相当于 copy
readableStream.pipe(writableStream);