zoukankan      html  css  js  c++  java
  • 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);

     

  • 相关阅读:
    DVWA的安装及报错解决
    隐写工具F5-steganography的使用
    python skimage库的安装
    密码学笔记——zip明文攻击
    密码学笔记-一段base64wp
    kali中网卡、ssh、apache的配置与开启
    密码学笔记——希尔密码
    密码学笔记——playfair密码
    使用electron-packager electron-builder electron-updater 打包vue项目,支持在线更新
    搭建vue脚手架,包含Axios、qs、Element-UI、mock等插件的安装配置
  • 原文地址:https://www.cnblogs.com/zhcBlog/p/10131588.html
Copyright © 2011-2022 走看看