与Read a file one line at a time in node.js?不重复。
另一个线程中的所有示例都回答了如何逐行读取文件。但是他们都没有专注于如何逐行一行一行地读取文件。
为了说明,我在另一个帖子中修改了accepted answer的代码:
let index = 0;
const rl = readline.createInterface({
input: fs.createReadStream(path.resolve(__dirname, './countries.txt'))
});
rl.on('line', () => {
console.log('line', ++index);
rl.pause();
});
根据执行代码的机器的速度,运行此程序的输出将类似于:
line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
...
line 564
line 565
line 566
line 567
如何逐行一行一行读取文件?
强调在示例中使用rl.pause
的意图:我需要从文件中获取1行并停止进一步读取文件,直到我明确请求第二行。
答案 0 :(得分:2)
我真的不明白你为什么使用readline界面来读取文件。
我建议您使用split,例如
var splitstream = fs.createReadStream(file).pipe(split())
splitstream
.on('data', function (line) {
//each chunk now is a seperate line!
splitstream.pause();
setTimeout(function (){ splitstream.resume() }, 500);
})
你一定会得到一行。
**为评论编辑。
答案 1 :(得分:0)
以下是如何逐行读取文件并在读取下一行之前处理一行。
Microsoft.AspNet.WebApi.Extensions.Compression