【发布时间】:2019-11-24 06:31:59
【问题描述】:
想使用 NodeJS 将大型二进制文件写入磁盘,但 WriteStream.write 是异步的并且在写入文件之前关闭,导致文件为空。
【问题讨论】:
想使用 NodeJS 将大型二进制文件写入磁盘,但 WriteStream.write 是异步的并且在写入文件之前关闭,导致文件为空。
【问题讨论】:
这就是我要做的工作。
var crypto = require('crypto');
var fs = require('fs');
function writeFile(i) {
const fileKey = Math.floor(Math.random()*2000*1000*500);
var wstream = fs.createWriteStream(`myBinaryFile${fileKey}.dat`);
// create another Buffer of 100 bytes and write
const fileSize = Math.floor(Math.random()*2000*1000*500);
console.log(`Writing ${Math.floor(fileSize/1000/1000)} MB to file ${i} with id ${fileKey}`)
wstream.write(crypto.randomBytes(fileSize));
wstream.end();
wstream.on("finish", function() {
setTimeout(() => {
writeFile(i+1)
}, 15000);
});
}
writeFile(0);
setInterval(() => {}, 1000);
【讨论】: