https://nodejs.org/api/readline.html
CSV のような大きなファイルを 1 行ずつ読み取るためのこのソリューションを提供します。
const { createReadStream } = require('fs');
const { createInterface } = require('readline');
(async function processLineByLine() {
try {
const rl = createInterface({
input: createReadStream('big-file.txt'),
crlfDelay: Infinity
});
rl.on('line', (line) => {
// Process the line.
});
await once(rl, 'close');
console.log('File processed.');
} catch (err) {
console.error(err);
}
})();
しかし、ファイル全体を最初から最後まで読みたくないのですが、その一部は行番号1から10000、20000から30000などと言っています.
基本的に、関数の特定の実行に対して「開始」行と「終了」行を設定できるようにしたいと考えています。
これはreadline
&で実行できfs.createReadStream
ますか? そうでない場合は、別のアプローチを提案してください。
PS: 大きなファイル (約 1 GB) であり、メモリにロードするとメモリの問題が発生します。