企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 流式操作 # 流式操作 一种是 buffer 模式,一种是 stream 模式,buffer 模式就是取完数据一次性操作,stream 模式就是边取数据边操作。**原来的方式在处理数据量较大的文件**时不能分块处理,导致速度慢,内存容易爆满。 ## 读取文件 ~~~ const path = require('path'); const fs = require("fs"); let data = ''; // 创建可读流 let readerStream = fs.createReadStream(path.join(__dirname, 'input.txt')); // 设置编码为 utf8。 readerStream.setEncoding('utf8'); // 处理流事件 // 有有数据可读时触发 readerStream.on('data', (chunk) => {    data += chunk; }); // 当没有更多的数据可读时触发 readerStream.on('end', () => {    console.log(data); }); // 在读取或写入过程中发生错误时触发 readerStream.on('error', (err) => {    console.log(err.stack); }); ~~~ ## 写入文件 ~~~ const path = require('path'); const fs = require("fs"); let data = '你好美,么么哒'; // 创建一个可以写入的流,写入到文件 output.txt 中 let writerStream = fs.createWriteStream(path.join(__dirname, 'output.txt')); ​ // 处理流事件 // 所有数据已被写入到底层系统时触发 writerStream.on('finish', () => {    console.log("写入完成。"); }); // 在读取或写入过程中发生错误时触发 writerStream.on('error', (err) => {   console.log(err.stack); }); ​ // 使用 utf8 编码写入数据 writerStream.write(data, 'utf8'); // 标记文件末尾,表明后面没数据要再写入了 writerStream.end(); ~~~