在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
提交
取消
