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


Posted in Javascript onMarch 01, 2018

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

什么是Readline

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

效果图如下:

左边1.log 为源文件

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

下边为命令行输出

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

实现方式一:

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

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

Javascript 相关文章推荐
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
javascript中RegExp保留小数点后几位数的方法分享
Aug 13 Javascript
Javascript浅谈之引用类型
Dec 18 Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 Javascript
使用Plupload实现直接上传附件至七牛云存储
Dec 26 Javascript
详解javascript跨浏览器事件处理程序
Mar 27 Javascript
JS高级运动实例分析
Dec 20 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
Mar 13 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 Javascript
vue 调用 RESTful风格接口操作
Aug 11 Javascript
js实现点击烟花特效
Oct 14 Javascript
基于Vuex无法观察到值变化的解决方法
Mar 01 #Javascript
Node.js readline模块与util模块的使用
Mar 01 #Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
Mar 01 #Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 #Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
Mar 01 #Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 #Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 #Javascript
You might like
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
咖啡风味 世界咖啡主要分布分布 咖啡的生长要求
2021/03/06 新手入门
PHP图片处理类 phpThumb参数用法介绍
2012/03/11 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
javascript时间函数基础介绍
2013/03/28 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
详解用node编写自己的cli工具
2017/05/23 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
Angular开发实践之服务端渲染
2018/03/29 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
python中from module import * 的一个坑
2014/07/20 Python
python检查指定文件是否存在的方法
2015/07/06 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
革命先烈的英雄事迹材料
2014/02/15 职场文书
静心口服夜广告词
2014/03/20 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
2015年环卫工作总结
2015/04/28 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书