1. 程式人生 > >nodejs 文本逐行讀寫功能的實現

nodejs 文本逐行讀寫功能的實現

name callback dst index thp var put read true

利用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);

nodejs 文本逐行讀寫功能的實現