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

Node.js でファイルを 1 行ずつ読み取るにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 22:11:13514ブラウズ

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

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

Node.js は、大きなファイルを一度に 1 行ずつ処理するための効率的なメカニズムを提供します。時間。この機能は、メモリを大量に使用する操作や、サーバー メモリを超えるファイルを処理する場合に不可欠です。

Node.js でファイルを 1 行ずつ読み取るには、次の方法を利用できます。

readline コア モジュール (Node.js v0.12) の使用

Node.js は、ファイル行をシームレスに反復するための readline コア モジュール。次のコードを考えてみましょう。

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();

「readline」パッケージの使用

v0.12 より前の Node.js バージョンの場合、「readline」パッケージは代替解決策:

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');
});

どちらのアプローチでも、末尾に文字がなくても最後の行は正しく読み取られます。改行文字。

その他の考慮事項

  • 「createReadStream()」で指定されたファイル パスが正確であることを確認してください。
  • エラーを適切に処理します。 try-catch ブロックまたはイベント リスナーを使用します。
  • readline モジュールの「close」イベントは、ファイルの終わりに達するかエラーが発生したときに発行されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。