我目前正在使用 Node.js,并且想知道如何从大型文本文件中读取一系列行。一个明显的解决方案如下所示:
var fs = require('fs');
fs.readFile(file, function(err, data) {
var lines = data.split('\n');
});
然而,这需要将整个文件加载到内存中,这对于大型文本文件(例如 100MB 以上的文件)来说是不切实际的。
在 Bash 中,我通常会使用sed
对于这个案例。
With lazy https://github.com/pkrumins/node-lazy/:
var fs = require('fs'),
lazy = require('lazy');
var x = 23;
var y = 42;
var lines = (
lazy(fs.createReadStream('./large.txt'))
.lines
.skip(x - 1)
.take(y - x + 1)
);
lines.forEach(function(line) {
console.log(line.toString('utf-8'));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)