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

Bagaimana untuk Cekap Membaca Fail Baris demi Baris dalam Node.js?

DDD
DDDasal
2024-12-07 04:43:11703semak imbas

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

Membaca Fail Baris demi Baris dalam Node.js

Pengenalan

Membaca fail besar satu baris pada satu masa boleh menjadi penting dalam pelbagai senario, terutamanya apabila penggunaan memori menjadi kebimbangan. Node.js menawarkan beberapa pendekatan untuk mencapai ini dengan cekap.

Modul Baris Baca Node.js

Bermula dengan Node.js v0.12, modul teras baris baca menyediakan penyelesaian yang stabil untuk tujuan ini. Begini cara anda boleh menggunakannya:

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

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

processLineByLine();

Kod ini mencipta strim baca daripada fail yang ditentukan dan kemudian menggunakan antara muka garisan baca untuk mengulangi fail, mencetak setiap baris ke konsol.

Alternatif Menggunakan Modul Luaran

Jika anda menggunakan versi lama Node.js, anda boleh mempertimbangkan untuk menggunakan modul pihak ketiga seperti pembaca baris. Berikut ialah contoh:

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

Kod ini menggunakan modul pembaca baris untuk mencipta antara muka pembaca baris, yang kemudiannya digunakan untuk mendengar acara 'baris'. Setiap kali baris dibaca daripada fail, pengendali acara dicetuskan, mencetak baris ke konsol.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Membaca Fail 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