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

时间:2013-04-19 12:15:53

标签: node.js streamwriter

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

这是一些背景 - 我想创建一个多线程下载器。作为响应的数据需要保存到磁盘。数据块的顺序可以是随机的,这就是我需要将position参数也传递给可写流的原因。

我使用可写流而不是fs.write,因为文档说的是 -

  

请注意,在同一文件上多次使用fs.write是不安全的   无需等待回调。对于这种情况,   强烈建议使用fs.createWriteStream。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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');
});
相关问题