【Node.js】'readline' 逐行读取、写入文件内容
[转]运用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.js】'readline' 逐行读取、写入文件内容的更多相关文章
- php逐行读取.txt文件内容,并解析每行内容
// 读取nlp text 并存到mongodb public function readNLP(&$errorCode,&$errorMessage) { try{ // $_SER ...
- Node.js高效按行输出文件内容
const fs = require('fs'); const EventEmitter = require('events'); const util = require('util'); cons ...
- 手工创建tomcat应用,以及实现js读取本地文件内容
手工创建tomcat应用: 1.在webapps下面新建应用目录文件夹 2.在文件夹下创建或是从其他应用中复制:META-INF,WEB-INF这两个文件夹, 其中META-INF清空里面,WEB-I ...
- 关于Python中读取写入文件并进行文件与用户交互的操作
一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...
- Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中
package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- 在 Node.js 中处理大 JSON 文件
在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...
- 读取Zip文件内容
第一步,上次文件并保存到服务器目录下 /// <summary> /// 上传压缩文件 /// </summary> protected void UploadZip() { ...
- java读取txt文件内容
package read; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public ...
- 别再用"while (!feof(file))"来逐行读取txt文件了!
起因 执行一个C/C++程序出现segment fault.它逐行读取文本文件,每一行是一个图片名字,然后读图.处理图像,etc. 发现最后一次读取的文件名不存在(空的). 正确的逐行读取txt文件 ...
随机推荐
- VS 忽略文件 Git 向远程添加问题
背景介绍: 我团队有个叫李恕华的技术大牛,最近在研究redis 然后向一个叫做MTS的项目中引入了redis,感觉很吊 问题: vs2017+git管理代码 其他人分支里一直提示找不到redis文件 ...
- 禁用chrome默认打印框直接打印
在做web打印的时候 重要弹出一个对话框选择打印机等等, 比较影响操作, 经过一番谷歌终于找到了解决方案 在桌面的chrome 图标 右键 打开属性对话框 在目标 添加 --kiosk-printi ...
- Scala学习之Tuple、Map、Array
1.Tuple Tuple的中文意思是元组,它的定义是不需要方法. 例如:val tup=(25,”Tuple”,”Map”,”Array”). 值得注意的是,Tuple在进行索引的时候,与我们平时所 ...
- 第03章—打造RESTful风格API
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...
- java 字符串解析为json 使用org.json包的JSONObject+JSONArray
参考: https://blog.csdn.net/xingfei_work/article/details/76572550 java中四种json解析方式 JSONObject+JSONArray ...
- FatMouse's Speed---hdu1160(简单dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题意就是给你一些老鼠(编号1,2,3,4,5,6,7,8...)的体重和他们的速度然后求出最大的 ...
- Vijos p1303导弹拦截(LIS+贪心)
传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...
- Drawable.Callback
一.介绍 public abstract void invalidateDrawable (Drawable who) Called when the drawable needs to be re ...
- Java泛型一:基本介绍和使用
原文地址http://blog.csdn.net/lonelyroamer/article/details/7864531 现在开始深入学习java的泛型了,以前一直只是在集合中简单的使用泛型,根本就 ...
- AngularJS 笔记之创建服务方式比较 : factory vs service vs provider 。
首先说一下服务这个东西是用来干嘛的.很多时候我们把太多的数据和逻辑都一股脑儿地往 controller 里放.这样我们的 controller 原来越臃肿.从它们的生命周期可以发现,其实 contro ...