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 XML和string相互转化实现代码
Jul 04 Javascript
jquery 笔记 事件
Nov 02 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
Oct 28 Javascript
js中判断对象是否为空的三种实现方法
Dec 23 Javascript
jquery预加载图片的方法
May 27 Javascript
js实现简单的验证码
Dec 25 Javascript
js实现异步循环实现代码
Feb 16 Javascript
jQuery事件委托之Safari
Jul 05 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
Dec 20 Javascript
vue-cli构建项目下使用微信分享功能
May 28 Javascript
vue以组件或者插件的形式实现throttle或者debounce
May 22 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
Mar 08 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
详细介绍PHP应用提速面面观
2006/10/09 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
python获取糗百图片代码实例
2013/12/18 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python获取当前路径实现代码
2017/05/08 Python
python实现电脑自动关机
2018/06/20 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
Python中整数的缓存机制讲解
2019/02/16 Python
python实现智能语音天气预报
2019/12/02 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
自我鉴定四大框架
2014/01/17 职场文书
消防安全检查制度
2014/02/04 职场文书
护士个人自我鉴定
2014/03/24 职场文书
教师工作失职检讨书
2014/09/18 职场文书
未婚证明书模板
2014/10/08 职场文书
出生公证书
2015/01/23 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
施工安全责任协议书
2016/03/23 职场文书
七年级作文之雪景
2019/11/18 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python