node读写大文件
需求:按行读取一个大文件,对每一行做md5加密,然后写入一个新的文件。
代码如下
'use strict';
const fs = require('fs');
const readLine = require('lei-stream').readLine;
const crypto = require('crypto');
readLine('./myfile.txt').go((data, next) => {
// console.log(data);
doWrite(data, next);
}, function () {
console.log('-----------------read end');
});
const doWrite = (data, next)=>{
const writeLineStream = require('lei-stream').writeLine;
// writeLineStream第一个参数为WriteStream实例,也可以为文件名
const s = writeLineStream(fs.createWriteStream('./output.txt', {flags:"a+"}), {
// 换行符,默认\n
newline: '\n',
// 编码器,可以为函数或字符串(内置编码器:json,base64),默认null
encoding: null,
// 缓存的行数,默认为0(表示不缓存),此选项主要用于优化写文件性能,写入的内容会先存储到缓