在node.js中一次只读取一行文件?我试着一次读一个大文件。我发现关于Quora的问题这是关于这个问题的,但我错过了一些联系,以使整件事合二为一。 var Lazy=require("lazy");
new Lazy(process.stdin)
.lines .forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();我想弄清楚的一点是,我可以一次从一个文件中读取一行,而不是像这个示例中的STDIN那样。我试过: fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}但不管用。我知道,在紧要关头,我可以回到使用类似PHP的东西,但我想弄清楚这一点。我不认为另一个答案会起作用,因为文件比我正在运行它的服务器的内存要大得多。
3 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
var fs = require('fs'), readline = require('readline');var rd = readline.createInterface({ input: fs.createReadStream('/path/to/file'), output: process.stdout, console: false});rd.on('line', function(line) { console.log(line);});
BIG阳
TA贡献1859条经验 获得超6个赞
var lineReader = require('line-reader');lineReader.eachLine('file.txt', function(line, last) { console.log(line); // do whatever you want with line... if(last){ // or check if it's the last one }});
lineReader.open('file.txt', function(reader) { if (reader.hasNextLine()) { reader.nextLine(function(line) { console.log(line); }); }});
添加回答
举报
0/150
提交
取消