Cet article présente principalement des exemples de lecture et d'écriture de contenu de fichier Node.js ligne par ligne. Deux implémentations de lecture ligne par ligne à l'aide de readline sont maintenant partagées avec vous et peuvent être utilisées comme référence.
Cet article présente deux implémentations de lecture ligne par ligne à l'aide de readline et les partage avec tout le monde. Les détails sont les suivants :
Qu'est-ce que Readline
Readline est un module packagé qui implémente les entrées et sorties standard dans Node.js. Grâce à ce module, nous pouvons lire le flux de données ligne par ligne. Les modules peuvent être référencés à l'aide de require("readline").
Le rendu est le suivant :
1.log à gauche est le fichier source
1.readline.log à droite est le fichier copié
La ligne de commande est en bas Sortie
Méthode d'implémentation 1 :
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...'); });
Méthode d'implémentation deux :
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...'); });
Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.
Articles connexes :
Principe et implémentation de l'utilisation du module webpack pour empaqueter Library
Explication approfondie des principes de base du webpack module
Comment utiliser Vuex pour implémenter la fonction de compteur
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!