【发布时间】:2016-02-19 16:08:39
【问题描述】:
我想通过循环以特定顺序在 Node 中将行追加到文件中,该文件是可写流。
这是我所说的简化版本:
var fs = require('fs');
var outfile = fs.createWriteStream('outfile.txt');
for (var i = 0; i < 200; i++) {
outfile.write('i', function (err, len) {
console.log('written');
});
}
我需要按顺序写入文件,这意味着它将按顺序写入12345...etc。我的理解是 outfile.write 是异步的,这意味着文件可能被乱序写入 - 这是正确的吗?
我从节点文档中看到
请注意,在同一个文件上多次使用 fs.write 而不等待回调是不安全的。对于这种情况,强烈建议使用 fs.createWriteStream。
所以我相信使用流是最好的,但是,我不确定在继续循环中的下一个迭代之前保证数据块已成功写入。我该怎么做呢?谢谢。
【问题讨论】: