Textdateien Zeile für Zeile in Node.js lesen
Zeile für Zeile eine große Textdatei in Node.js lesen kann ein entscheidender Vorgang für die Verarbeitung umfangreicher Datensätze sein. Während sich die Frage, die Sie von Quora erwähnt haben, mit dem Lesen aus STDIN beschäftigt, konzentriert sich dieser Artikel auf die Ausweitung dieses Konzepts auf das Lesen aus einer Textdatei.
Der anfängliche Ansatz, der fs.open einbezieht, dient als Grundlage. Der fehlende Schritt besteht darin, das Lazy-Modul zu nutzen, um zeilenweises Lesen aus dem geöffneten Dateideskriptor durchzuführen. Seit Node.js v0.12 gibt es jedoch eine robustere Lösung mit dem integrierten Readline-Kernmodul.
Lassen Sie uns zwei Ansätze mit Readline erkunden:
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();
Alternativ Sie kann Folgendes verwenden:
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'); });
Beide Ansätze nutzen das Readline-Modul, um effektiv Zeilen nacheinander aus einer Textdatei zu lesen. Die letzte Zeile wird korrekt gelesen (ab Node v0.12 oder höher), auch wenn kein letzter Zeilenumbruch erfolgt.
Das obige ist der detaillierte Inhalt vonWie kann ich eine große Textdatei effizient Zeile für Zeile in Node.js lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!