Ich möchte eine Textdatei mit Knoten mithilfe eines Befehlszeilenaufrufs wie folgt verarbeiten:
node app.js < input.txt
Jede Zeile der Datei muss einzeln verarbeitet werden, aber sobald sie verarbeitet wurde, kann die Eingabezeile vergessen werden.
Mit dem On-Data-Listener des STDIN wird der Eingangsdampf um eine Bytegröße aufgeteilt, sodass ich ihn einrichte.
process.stdin.resume();
process.stdin.setEncoding('utf8');
var lingeringLine = "";
process.stdin.on('data', function(chunk) {
lines = chunk.split("\n");
lines[0] = lingeringLine + lines[0];
lingeringLine = lines.pop();
lines.forEach(processLine);
});
process.stdin.on('end', function() {
processLine(lingeringLine);
});
Aber das scheint so schlampig. Um das erste und letzte Element des Linienarrays herum massieren müssen. Gibt es nicht einen eleganteren Weg, dies zu tun?