Rumah >hujung hadapan web >tutorial js >Bagaimana Cara Membaca Fail Besar Secara Cekap Baris demi Baris dalam Node.js?

Bagaimana Cara Membaca Fail Besar Secara Cekap Baris demi Baris dalam Node.js?

Susan Sarandon
Susan Sarandonasal
2024-11-28 20:09:11434semak imbas

How to Efficiently Read Large Files Line by Line in Node.js?

Membaca Fail Baris demi Baris dalam Node.js

Soalan ini meneroka pembacaan fail besar yang cekap satu baris pada satu masa dalam Node.js. Walaupun contoh Quora yang disediakan menunjukkan ini untuk input STDIN, penukaran kepada pendekatan berasaskan fail memerlukan pertimbangan yang teliti.

Percubaan untuk membaca baris menggunakan fs.open() dan process.stdin akan gagal kerana fs.open () tidak menyediakan antara muka penstriman seperti process.stdin. Untuk menyelesaikan masalah ini, kami boleh menggunakan modul teras baris baca yang diperkenalkan dalam Node.js v0.12.

Penstriman Asynchronous dengan readline

Modul baris baca menyediakan cara yang mudah untuk memproses fail besar berturut-turut -garisan tidak segerak. Berikut ialah contoh:

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 // Handle CR LF as a single line break
  });

  for await (const line of rl) {
    console.log(`Line from file: ${line}`);
  }
}

processLineByLine();

Sintaks Alternatif dengan readline

Sebagai alternatif, modul readline juga boleh digunakan secara segerak:

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

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

lineReader.on('close', () => {
  console.log('all done');
});

Dalam contoh ini, lineReader memancarkan peristiwa 'baris' untuk setiap baris dalam fail dan acara 'tutup' apabila semua baris telah diproses.

Nota: Dokumentasi rasmi Node.js kini termasuk contoh yang serupa dengan yang di atas.

Atas ialah kandungan terperinci Bagaimana Cara Membaca Fail Besar Secara Cekap Baris demi Baris dalam Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn