0

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) であり、メモリにロードするとメモリの問題が発生します。

4

2 に答える 2