作者:王尼玛的脑残粉 | 来源:互联网 | 2024-11-20 10:23
在 Node.js 中,流是一种处理大量数据的有效方式,特别适用于读取或写入大文件,避免一次性加载整个文件到内存中导致资源耗尽。本文将通过两个示例来展示如何使用流进行基本的数据读取与写入。
1. 从文件中读取数据
下面的示例展示了如何从文件中读取数据并打印到控制台。
const fs = require('fs');
let data = '';
// 创建可读流
const readerStream = fs.createReadStream('input.txt');
// 设置编码为 UTF-8
readerStream.setEncoding('UTF8');
// 监听 data 事件,当有数据可读时触发
readerStream.on('data', (chunk) => {
data += chunk;
});
// 监听 end 事件,当所有数据被读取后触发
readerStream.on('end', () => {
console.log(data);
});
// 监听 error 事件,当读取过程中发生错误时触发
readerStream.on('error', (err) => {
console.error(err.stack);
});
console.log('程序执行完毕');
执行上述脚本的结果如下:
程序执行完毕
hello world in input.txt
2. 向文件中写入数据
接下来,我们将展示如何向文件中写入数据。
const fs = require('fs');
const data = 'test write data';
// 创建可写流,写入到文件 output.txt 中
const writerStream = fs.createWriteStream('output.txt');
// 使用 UTF-8 编码写入数据
writerStream.write(data, 'UTF8');
// 标记文件末尾
writerStream.end();
// 监听 finish 事件,当所有数据写入完成后触发
writerStream.on('finish', () => {
console.log('写入完成');
});
// 监听 error 事件,当写入过程中发生错误时触发
writerStream.on('error', (err) => {
console.error(err.stack);
});
console.log('程序执行完毕');
执行上述脚本的结果如下:
程序执行完毕
写入完成