我试图一次读一行大文件.我在Quora上发现了一个关于这个问题的问题,但是我错过了一些联系,以使整个事情融合在一起.
var Lazy=require("lazy");
new Lazy(process.stdin)
.lines
.forEach(
function(line) {
console.log(line.toString());
}
);
process.stdin.resume();
Run Code Online (Sandbox Code Playgroud)
我想弄清楚的是我如何从文件而不是STDIN一次读取一行,如本示例所示.
我试过了:
fs.open('./VeryBigFile.csv', 'r', '0666', Process);
function Process(err, fd) {
if (err) throw err;
// DO lazy read
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道,在一个紧要关头,我可以回到使用像PHP这样的东西,但我想弄清楚这一点.
我认为其他答案不会起作用,因为文件比我正在运行它的服务器大得多.
我想将一个非常非常大的文件读入node.js中的JavaScript数组.
所以,如果文件是这样的:
first line
two
three
...
...
Run Code Online (Sandbox Code Playgroud)
我会有阵列:
['first line','two','three', ... , ... ]
Run Code Online (Sandbox Code Playgroud)
该函数看起来像这样:
var array = load(filename);
Run Code Online (Sandbox Code Playgroud)
因此,将它全部作为字符串加载然后拆分它的想法是不可接受的.