Heim  >  Artikel  >  Web-Frontend  >  So verwenden Sie readline in Node.js, um Dateiinhalte Zeile für Zeile zu lesen und zu schreiben

So verwenden Sie readline in Node.js, um Dateiinhalte Zeile für Zeile zu lesen und zu schreiben

亚连
亚连Original
2018-06-02 11:44:432850Durchsuche

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!

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