Node.js readline 逐行读取、写入文件内容的示例

 更新时间:2018年03月01日 10:22:33   作者:Sodino  
本篇文章主要介绍了Node.js readline逐行读取、写入文件内容的示例,运用readline逐行读取的两种实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了运用readline逐行读取的两种实现,分享给大家,具体如下:

什么是Readline

Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require(“readline”)可以引用模块。

效果图如下:

左边1.log 为源文件

右边1.readline.log为复制后的文件

下边为命令行输出

实现方式一:

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...'); 
}); 

实现方式二:

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...'); 
}); 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 全面解析node 表单的图片上传

    全面解析node 表单的图片上传

    本文给大家介绍分享node全面解析表单的图片上传,本文给大家介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • 前端如何更好的展示后端返回的十万条数据

    前端如何更好的展示后端返回的十万条数据

    这篇文章主要为大家介绍了前端如何更好的展示后端返回的十万条数据,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • 前端+nodejs+mysql实现前后端联通的完整代码

    前端+nodejs+mysql实现前后端联通的完整代码

    Node.js主要属于后端技术,但也可以用于前端开发的某些场景,下面这篇文章主要介绍了前端+nodejs+mysql实现前后端联通的完整代码,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Node.js Stream ondata触发时机与顺序的探索

    Node.js Stream ondata触发时机与顺序的探索

    今天小编就为大家分享一篇关于Node.js Stream ondata触发时机与顺序的探索,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 2023年全网最新Node.js下载安装教程

    2023年全网最新Node.js下载安装教程

    这篇文章主要介绍了2023年全网最新Node.js下载安装教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • node.js cookie-parser之parser.js

    node.js cookie-parser之parser.js

    这篇文章主要介绍node.js cookie-parser之parser.js,讲解的比较详细,需要的朋友可以参考下。
    2016-06-06
  • 详解nodejs微信公众号开发——6.自定义菜单

    详解nodejs微信公众号开发——6.自定义菜单

    这篇文章主要介绍了详解nodejs微信公众号开发——6.自定义菜单,自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能。
    2017-04-04
  • 基于nodejs使用express创建web服务器的操作步骤

    基于nodejs使用express创建web服务器的操作步骤

    express实际上是对nodejs内置http进行封装后的第三方包,其中提供了快捷创建web服务器以及处理请求路由的方法,使我们可以更加方便快捷的实现一个web服务器项目,本文件给大家详细介绍基于nodejs使用express 创建web服务器的操作步骤
    2023-07-07
  • Node.js中多进程模块Cluster的介绍与使用

    Node.js中多进程模块Cluster的介绍与使用

    众所周知Node.js是单线程的,一个单独的Node.js进程无法充分利用多核。Node.js从v0.6.0开始,新增cluster模块,让Node.js开发Web服务时,很方便的做到充分利用多核机器。这篇文章主要给大家介绍了关于Node.js中多进程模块Cluster的相关资料,需要的朋友可以参考下
    2017-05-05
  • 如何在Nestjs和Vue3中使用socket.io示例详解

    如何在Nestjs和Vue3中使用socket.io示例详解

    这篇文章主要为大家介绍了如何在Nestjs和Vue3中使用socket.io示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08

最新评论