用readline模块,怎么实现读到某一行就不再继续读下去了? 刚接触node,请大家帮忙看下,万分感谢!
发布于 12 年前 作者 0704681032 5056 次浏览 最后一次编辑是 8 年前

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 回复

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

原来如此,非常感谢回答!! 顺便弱弱的问下,这些东西从哪儿看的? 好像api没有说的这么清楚啊

回到顶部