ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js で大きなテキスト ファイルを 1 行ずつ効率的に読み取るにはどうすればよいですか?

Node.js で大きなテキスト ファイルを 1 行ずつ効率的に読み取るにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-07 02:35:15
オリジナル
940 人が閲覧しました

How Can I Efficiently Read a Large Text File Line by Line in Node.js?

Node.js でテキスト ファイルを 1 行ずつ読み取る

Node.js で大きなテキスト ファイルを一度に 1 行ずつ読み取る広範なデータセットを処理するには重要な操作となる可能性があります。あなたが Quora から挙げた質問は STDIN からの読み取りに取り組んでいますが、この記事ではこの概念をテキスト ファイルからの読み取りに拡張することに焦点を当てています。

fs.open を含む最初のアプローチは基礎として機能します。欠けているステップは、Lazy モジュールを利用して、開かれたファイル記述子から行ごとに読み取りを実行することです。ただし、Node.js v0.12 以降は、組み込みの readline コア モジュールを使用した、より堅牢なソリューションがあります。

readline を使用した 2 つのアプローチを検討してみましょう。

const fs = require('fs');
const readline = require('readline');

async function processLineByLine() {
  const fileStream = fs.createReadStream('input.txt');

  const rl = readline.createInterface({
    input: fileStream,
    crlfDelay: Infinity
  });
  // Note: we use the crlfDelay option to recognize all instances of CR LF
  // ('\r\n') in input.txt as a single line break.

  for await (const line of rl) {
    // Each line in input.txt will be successively available here as `line`.
    console.log(`Line from file: ${line}`);
  }
}

processLineByLine();
ログイン後にコピー

あるいは、

var lineReader = require('readline').createInterface({
  input: require('fs').createReadStream('file.in')
});

lineReader.on('line', function (line) {
  console.log('Line from file:', line);
});

lineReader.on('close', function () {
    console.log('all done, son');
});
ログイン後にコピー

どちらのアプローチも readline モジュールを活用して、テキスト ファイルから 1 行ずつ効果的に読み取ります。 時間。最後の改行がない場合でも、最後の行は正しく読み取られます (Node v0.12 以降)。

以上がNode.js で大きなテキスト ファイルを 1 行ずつ効率的に読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート