node 按行读取文件

  1. var readline = require('readline');  
  2. var fs = require('fs');  
  3. var os = require('os');  
  4.   
  5. var fReadName = './1.log';  
  6. var fWriteName = './1.readline.log';  
  7. var fRead = fs.createReadStream(fReadName);  
  8. var fWrite = fs.createWriteStream(fWriteName);  
  9.   
  10. var enableWriteIndex = true;  
  11. fRead.on('end', ()=>{  
  12.     console.log('end');  
  13.     enableWriteIndex = false;  
  14. });  
  15.   
  16. var objReadline = readline.createInterface({  
  17.     input: fRead,  
  18.     output: fWrite,   
  19.     terminal: true  
  20. });  
  21.   
  22.   
  23. var index = 1;  
  24. fWrite.write('line' + index.toString() +':');  
  25. objReadline.on('line', (line)=>{  
  26.     console.log(index, line);  
  27.     if (enableWriteIndex) {  
  28.         // 由于readline::output是先写入后调用的on('line')事件,  
  29.         // 所以已经读取文件完毕时就不需要再写行号了... sodino.com  
  30.         index ++;  
  31.         var tmp = 'line' + index.toString() + ':';  
  32.         fWrite.write(tmp);        
  33.     }  
  34. });  
  35.   
  36.   
  37.   
  38. objReadline.on('close', ()=>{  
  39.     console.log('readline close...');  
  40. }); 
posted @ 2017-11-15 15:23  世界,太精彩  阅读(1470)  评论(0编辑  收藏  举报