Ich versuche, eine große Datei Zeile für Zeile zu lesen. Ich habe auf Quora eine Frage zu diesem Thema gefunden, aber mir fehlen einige Zusammenhänge, um das Ganze zusammenzufügen.
var Lazy=require("lazy"); new Lazy(process.stdin) .lines .forEach( function(line) { console.log(line.toString()); } ); process.stdin.resume();
Ich versuche herauszufinden, wie man Zeile für Zeile aus einer Datei liest, anstatt wie in diesem Beispiel von STDIN zu lesen.
Ich habe versucht:
fs.open('./VeryBigFile.csv', 'r', '0666', Process); function Process(err, fd) { if (err) throw err; // DO lazy read }
Aber es funktioniert nicht. Ich weiß, dass ich zur Not auf PHP oder so zurückgreifen könnte, aber ich möchte das herausfinden.
Ich denke, die andere Antwort wird nicht funktionieren, weil die Datei viel größer ist als der Speicher des Servers, auf dem ich sie ausführe.
Seit Node.js v0.12 und Node.js v4.0.0 gibt es ein stabiles readline-Kernmodul. Dies ist die einfachste Möglichkeit, Zeilen aus einer Datei ohne externe Module zu lesen:
<code>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(); </code>
oder:
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'); });
Die letzte Zeile wird auch ohne das Finale korrekt gelesen n
(ab Node v0.12 oder höher).
Update: Dieses Beispiel wurde zur offiziellen API-Dokumentation von Node hinzugefügt .
Das obige ist der detaillierte Inhalt vonEine Datei Zeile für Zeile in node.js lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!