CNode

用readline模块,怎么实现读到某一行就不再继续读下去了? 刚接触node,请大家帮忙看下,万分感谢!

00704681032发布于13 年前最后回复13 年前2 回复5511 浏览0 收藏

var fs = require('fs'); //var filename = process.argv[2]; var filename = 'test.txt'; //var filename = __filename; var rl = require('readline').createInterface({ input: fs.createReadStream(filename), terminal: false });

var i = 0 ; rl.on('line', function(line){ console.log('Line: ' + line); i++; if(i===4){ console.log('here'); rl.pause();//怎么不起作用 //process.exit(0); } });

查看回复

回复 (2)

S
shiedman#1·13 年前

找个上万行的文本文件来测试,停止的行数设定到2000以上。 rs.pause停止的是下一次的读文件操作,已经读取的数据会一直触发line事件,直到消耗完毕,因此pause的时效性取决于fs读文件的内部缓存大小(64K?)。不想处理n行后的数据,那么取消当前监听器吧,rl.removeAllListeners('line')

参与回复
登录后即可参与回复。登录