use*_*696 3 javascript node.js
在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}`);
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我们想要开始阅读特定的行号怎么办?我知道当我们使用时,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}`);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1653 次 |
| 最近记录: |