nodejs 文本逐行读写功能的实现

利用nodejs实现:逐行读写(从一个文件逐行复制到另外一个文件);逐行读取、处理和写入(读取一行,处理后,写入另一个文件)

1.所需要的模块: fs,os,readline

2.具体实现:

 a. 功能的实现:readWriteFileByLine.js

var fs = require(‘fs-extra‘);
var os = require(‘os‘);
var rl =  require(‘readline‘);

/**
 * 按行读写,无读取内容的处理,类似单纯的复制功能
 * @param {string} readName
 * @param {string} writeName
 */
var readWriteFileByLine = function(readName, writeName){
    var readStream =  fs.createReadStream(readName);
    var writeStream = fs.createWriteStream(writeName);
    var readLine = rl.createInterface({
        input: readStream,
        output: writeStream,
        terminal: true
    })
}

/**
 * 按行读写,中间包涵对读取的行内容的处理
 * @param {string} readName
 * @param {string} writeName
 * @param {Function} callback
 */
var readWriteFileByLineWithProcess = function(readName,writeName,callback){
    var readStream = fs.createReadStream(readName);
    var writeStream = fs.createWriteStream(writeName);
    var readLine = rl.createInterface({
        input: readStream
    })
    readLine.on(‘line‘,function(line){
        var rs = callback(line);
        writeStream.write(rs + os.EOL);
    })
}

exports.readWriteFileByLine = readWriteFileByLine;
exports.readWriteFileByLineWithProcess = readWriteFileByLineWithProcess

  b. 功能的调用:index.js

var rwByLine = require(‘./lib/readWriteFileByLine.js‘)

//按行读写,对行做字符替换处理
var readName = ‘./obj.txt‘;
var writeName = ‘./rt.txt‘;
rwByLine.readWriteFileByLineWithProcess(readName,writeName,function(line){
    var rs = line.toString().replace("\\",‘\/‘);
    return rs;
})

//按行读写,无处理
readName = ‘./obj.txt‘;
writeName = ‘./rt1.txt‘;
rwByLine.readWriteFileByLine(readName,writeName);

原文地址:https://www.cnblogs.com/zhcBlog/p/10131588.html

时间: 2024-08-09 04:06:04

nodejs 文本逐行读写功能的实现的相关文章

Nodejs查找,读写文件

Nodejs查找,读写文件 (1),路径处理1.首先,我们需要注意的文件路径的规范化,nodejs给我们提供了Path模块,normolize方法能帮我们规范化路径:var path = require('path');path.normalize('/foo/bar/nor/faz/..'); -> /foo/bar/nor2.当然还有join合并路径:var path = require('path');path.join('/foo', 'bar', 'baz/asdf', 'quux',

通过file读写功能实现文件复制粘贴功能

通过file读写功能实现文件复制粘贴功能 import java.io.*; public class Copy1M { public static void main(String arg[]) throws FileNotFoundException{ long begin = System.currentTimeMillis(); //记录程序开始事件 //**************************************获取文件属性***********************

JS封装插件:实现文件读写功能

scripting.FileSystemObject是一个可以实现文件读写的COM组件,由于COM组件可以被跨语言调用,因此可以选择像vbs或者JS这种脚本语言调用,下面我就使用该COM组件封装了一个简单的JS插件,实现了文件的读写功能.(只能IE打开) JS代码(插件): (function(win,undefined){ var fso = new ActiveXObject("Scripting.FileSystemObject"); var file=null; var Fil

如何设置secureCRT的鼠标右键为弹出文本操作菜单功能

secureCRT的鼠标右键功能默认是粘贴的功能,用起来和windows系统的风格不一致, 如果要改为右键为弹出文本操作菜单功能,方便对选择的内容做拷贝编辑操作,可以在 options菜单---->global options------>terminal------->mouse子菜单对 paste on right button的选项不要打勾就可以.

背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数据 读写二进制数据 读写流数据 示例1.演示如何读写文本数据FileSystem/ReadWriteText.xaml <Page x:Class="Windows10.FileSystem.ReadWriteText" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x

Mac开启NTFS读写功能

Mac本身实际上是支持原生的NTFS读写的,只不过这一功能被隐藏了,但是可以手动打开,这比第三方的的工具要安全得多,有时第三方工具可能会发生整个NTFS分区数据丢失的情况,下面是打开MAC原生NTFS读写功能的方法. 1. 打开终端,输入:diskutil list 2,输入 sudo vim /etc/fstab 然后提示输入密码: 3. 用vim编辑器写入下列代码(设置Toos分区可读写) 4.然后到硬盘管理工具中卸载Tools分区,再装载Tools分区. 5.此时Tools分区不再在Fin

逐行读写字符串数组到文本txt文件

C语言方式 将字符串数组写入到txt文件中 有五个文件名存储在字符串数组中,欲将其逐行写入到txt文件中保存到磁盘上. 利用fprintf对文件进行格式化输出 void Filewrite() { FILE *fp; char * name[] = {"filen1", "file2", "file3", "file4", "file4"}; fp = fopen("E://test.txt&qu

基础学习总结(三)--文本数据读写文件、SD卡

简单的文本数据写入文件不需要权限,读写SD卡在4.0版本前需要写权限.在4.0后需要读写权限 布局: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android

文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表

演示如何读写文本数据 演示如何读写二进制数据 演示如何读写流数据 演示如何读写“最近访问列表”和“未来访问列表” 1.演示如何读写文本数据 <StackPanel Margin="0,50 "> <Button Name="btnWriteText" Content="Text方式写入文件" Click="btnWriteText_Click" Margin="5"></But