In diesem Artikel werden hauptsächlich Beispiele für das zeilenweise Lesen und Schreiben von Dateiinhalten durch Node.js vorgestellt. Zwei Implementierungen der Verwendung von readline zum zeilenweisen Lesen werden jetzt mit Ihnen geteilt und können als Referenz verwendet werden.
In diesem Artikel werden zwei Implementierungen des zeilenweisen Lesens mit readline vorgestellt und mit allen geteilt. Die Details lauten wie folgt:
Was ist Readline?
Readline ist ein gepacktes Modul, das die Standardeingabe und -ausgabe in Node.js implementiert. Über dieses Modul können wir den Datenstrom Zeile für Zeile lesen. Module können mit require("readline") referenziert werden.
Die Darstellung ist wie folgt:
1.log links ist die Quelldatei
1.readline.log rechts ist die kopierte Datei
Die Befehlszeile befindet sich unten. Ausgabe
Implementierungsmethode eins:
var readline = require('readline'); var fs = require('fs'); var os = require('os'); var fReadName = './1.log'; var fWriteName = './1.readline.log'; var fRead = fs.createReadStream(fReadName); var fWrite = fs.createWriteStream(fWriteName); var objReadline = readline.createInterface({ input: fRead, // 这是另一种复制方式,这样on('line')里就不必再调用fWrite.write(line),当只是纯粹复制文件时推荐使用 // 但文件末尾会多算一次index计数 sodino.com // output: fWrite, // terminal: true }); var index = 1; objReadline.on('line', (line)=>{ var tmp = 'line' + index.toString() + ':' + line; fWrite.write(tmp + os.EOL); // 下一行 console.log(index, line); index ++; }); objReadline.on('close', ()=>{ console.log('readline close...'); });
Implementierungsmethode zwei:
var readline = require('readline'); var fs = require('fs'); var os = require('os'); var fReadName = './1.log'; var fWriteName = './1.readline.log'; var fRead = fs.createReadStream(fReadName); var fWrite = fs.createWriteStream(fWriteName); var enableWriteIndex = true; fRead.on('end', ()=>{ console.log('end'); enableWriteIndex = false; }); var objReadline = readline.createInterface({ input: fRead, output: fWrite, terminal: true }); var index = 1; fWrite.write('line' + index.toString() +':'); objReadline.on('line', (line)=>{ console.log(index, line); if (enableWriteIndex) { // 由于readline::output是先写入后调用的on('line')事件, // 所以已经读取文件完毕时就不需要再写行号了... sodino.com index ++; var tmp = 'line' + index.toString() + ':'; fWrite.write(tmp); } }); objReadline.on('close', ()=>{ console.log('readline close...'); });
Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
Prinzip und Implementierung der Verwendung des Webpack-Moduls zum Verpacken der Bibliothek
Ausführliche Erläuterung der Grundprinzipien von Webpack Modul
Wie man Vuex verwendet, um eine Zählerfunktion zu implementieren
Das obige ist der detaillierte Inhalt vonSo verwenden Sie readline in Node.js, um Dateiinhalte Zeile für Zeile zu lesen und zu schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!