使用nodejs中的Writable Stream指定要写入文件的位置

我想用nodejs中的Writable Stream多次写入文件。 问题是,我也想指定这位作家的位置。

这里有一些背景 – 我想创build一个multithreading下载。 作为响应的数据需要保存到磁盘中。 数据块的顺序可以是随机的,这就是为什么我需要将位置parameter passing给可写入stream。

我正在使用可写入的stream而不是fs.write,因为文档中这么说 –

请注意,在不等待callback的情况下,在同一个文件上多次使用fs.write是不安全的。 对于这种情况,强烈build议使用fs.createWriteStream。

谢谢!

您可以使用start选项执行此操作,但是,它要求文件存在并具有> = offset + chunkToWrite.length的大小。 这将使您回到使用fs.writeFile的一些虚拟内容,其大小大于要下载文件的大小,并且需要等待最初写入的callback。 例如:

var buffer = new Buffer (fileSize); buffer.fill('0'); fs.writeFile('./file', buffer, function() { var writeStream = fs.createWriteStream('./file',{flags: 'r+', mode: 0777, start: 10}); writeStream.write('HELLO AFTER 10'); });