ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js で大きなテキスト ファイルを 1 行ずつ効率的に読み取るにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。