在node.js上,我们可以使用readline
模块通过行读取文件:
var fs = require('fs');
var readline = require('readline');
var rl = readline.createInterface({
input: fs.createReadStream('filepath');
});
rl.on('line', function(line) {
console.log(`Line read: ${line}`);
});
但是,如果我们想开始在特定行号上阅读该怎么办?我知道,当我们使用createReadStream
时,我们可以通过start
参数传递。文档中解释了这一点:
options
可以包括start
和end
值,以读取文件而不是整个文件中的一系列字节。
但是,这里的start
是字节中的一个偏移,因此使用它来设置起始行似乎很复杂。
我们如何适应这种方法以开始在特定行上读取文件?
您必须从开头和计数行读取文件,并在到达某个行之后才开始处理行。没有办法让文件系统告诉您特定的行从哪里开始。
var fs = require('fs');
var readline = require('readline');
var cntr = 0;
var rl = readline.createInterface({
input: fs.createReadStream('filepath');
});
rl.on('line', function(line) {
if (cntr++ >= 100) {
// only output lines starting with the 100th line
console.log(`Line read: ${line}`);
}
});