您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页nodejs 文本逐行读写功能的实现

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务