nodejs 文本逐行讀寫功能的實現
阿新 • • 發佈:2018-12-17
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 文本逐行讀寫功能的實現