Heim >Web-Frontend >js-Tutorial >Wie kann ich Dateien Zeile für Zeile in Node.js effizient lesen?

Wie kann ich Dateien Zeile für Zeile in Node.js effizient lesen?

DDD
DDDOriginal
2024-12-07 04:43:11700Durchsuche

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

Dateien Zeile für Zeile in Node.js lesen

Einführung

Das zeilenweise Lesen großer Dateien kann insbesondere in verschiedenen Szenarien von entscheidender Bedeutung sein wenn der Speicherverbrauch ein Problem darstellt. Node.js bietet mehrere Ansätze, um dies effizient zu erreichen.

Node.js Readline-Modul

Ab Node.js v0.12 bietet das Readline-Kernmodul eine stabile Lösung für diesen Zweck. So können Sie es verwenden:

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

Dieser Code erstellt einen Lesestream aus der angegebenen Datei und verwendet dann die Readline-Schnittstelle, um die Datei zu durchlaufen und jede Zeile auf der Konsole auszugeben.

Alternative zur Verwendung eines externen Moduls

Wenn Sie eine ältere Version von Node.js verwenden, können Sie die Verwendung eines Drittanbietermoduls wie Line-Reader in Betracht ziehen. Hier ist ein Beispiel:

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

Dieser Code verwendet das Line-Reader-Modul, um eine Line-Reader-Schnittstelle zu erstellen, die dann zum Abhören des „line“-Ereignisses verwendet wird. Jedes Mal, wenn eine Zeile aus der Datei gelesen wird, wird der Event-Handler ausgelöst und die Zeile an die Konsole ausgegeben.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien Zeile für Zeile in Node.js effizient lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn