我正在尝试编写一些JS代码,它可以读取文件并将其写入流中。问题是该文件非常大,因此我必须逐位读取。看起来我不应该用光内存,但实际上确实出现了这种情况。以下是代码:
var size = fs.statSync("tmpfile.tmp").size;
var fp = fs.openSync("tmpfile.tmp", "r");
for(var pos = 0; pos < size; pos += 50000){
var buf = new Buffer(50000),
len = fs.readSync(fp, buf, 0, 50000, (function(){
console.log(pos);
return pos;
})());
data_output.write(buf.toString("utf8", 0, len));
delete buf;
}
data_output.end();
由于某些原因,它达到了264900000,然后抛出。我认为调用会强制将数据写入,然后从内存中丢弃它,但我可能错了。某些原因导致数据留在内存中,我不知道是什么原因。非常感谢任何帮助。