lei-stream
这个包是我用过的一个很好用的包,读取文件时内部可配置换行符号,是否自动读取下一行和编码器。读取时用不同的事件监听读取状态,可通过next方法控制继续读取。可太好用了!
读取文件时推荐使用如下的方式
const fs = require('fs');
const readLine = require('lei-stream').readLine;
// readLineStream第一个参数为ReadStream实例,也可以为文件名
const s = readLine(fs.createReadStream('./myfile.txt'), {
// 换行符,默认\n
newline: '\n',
// 是否自动读取下一行,默认false
autoNext: false,
// 编码器,可以为函数或字符串(内置编码器:json,base64),默认null
encoding: function (data) {
return JSON.parse(data);
}
});
// 读取到一行数据时触发data事件
s.on('data', (data) => {
console.log(data);
s.next();
});
// 流结束时触发end事件
s.on('end', () => {
console.log('end');
});
// 读取时出错
s.on('error', (err) => {
console.error(err);
});
其次还包含写文件和监听文件内容变换的api。内容自取:lei-stream