【发布时间】:2018-03-17 23:51:37
【问题描述】:
我已经 read fs.appendFile 不返回 fd(文件描述符),所以它会打开文件,甚至会为你关闭。但在下面的例子中我得到错误
Error: EMFILE: too many open files, open
[...Array(10000)].forEach( function (item,index) {
fs.appendFile("append.txt", index+ "\n", function (err) {
if (err) console.log(err);
})});
我假设这意味着对于每个新的附加,它都会一遍又一遍地打开同一个文件。 但是使用流一切都很好
var stream = fs.createWriteStream("append.txt", {flags:'a'});
[...Array(10000)].forEach( function (item,index) {
stream.write(index + "\n")});
那么,为什么在第一种情况下 appendFile 在操作后没有关闭文件?
【问题讨论】: