📅  最后修改于: 2023-12-03 15:10:23.717000             🧑  作者: Mango
在 Node.js 中,我们可以很方便地使用内置的 fs
模块来处理文件。但是,对于大文件,一次性读入内存可能会导致性能问题。因此,我们可以使用文件逐行阅读器来逐行读取和处理大文件。
readline
模块Node.js 提供了内置的 readline
模块,可以用来逐行读取文件。下面是一个简单的示例:
const readline = require('readline');
const fs = require('fs');
const rl = readline.createInterface({
input: fs.createReadStream('sample.txt')
});
rl.on('line', (line) => {
console.log(`Line from file: ${line}`);
});
上面的代码会逐行读取名为 sample.txt
的文本文件,并在控制台输出每一行的内容。
stream
模块另一种逐行读取文件的方法是使用 Node.js 的 stream
模块。下面是一个示例:
const fs = require('fs');
const readableStream = fs.createReadStream('sample.txt', {encoding: 'utf8'});
const data = [];
readableStream.on('data', chunk => {
const lines = chunk.split('\n');
while (lines.length) {
data.push(lines.shift());
}
});
readableStream.on('end', () => {
console.log(data);
});
上面的代码会逐行读取名为 sample.txt
的文本文件,并将每一行存储在一个数组中。
文件逐行阅读器是一个非常实用的功能,可以帮助我们高效地处理大文件。在 Node.js 中,我们可以使用内置的 readline
模块或者 stream
模块来实现文件逐行读取。