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

标签 node.js streamwriter

我想使用nodejs中的可写流多次写入文件。 问题是我也想向这位作者指定这个职位。

这里是一些背景 - 我想创建一个多线程下载器。作为响应出现的数据需要保存到磁盘上。数据 block 的顺序可以是随机的,这就是为什么我需要将位置参数也传递给可写流。

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

Note that it is unsafe to use fs.write multiple times on the same file without waiting for the callback. For this scenario, fs.createWriteStream is strongly recommended.

谢谢!

最佳答案

您可以使用 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');
});

关于node.js - 在nodejs中使用Writable Stream指定写入文件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104406/

相关文章:

javascript - 可以在函数上调用函数吗?

c# - 字典排序

javascript - Node.js writable.write 返回 false?

node.js - API触发消息的头像如何设置?

node.js - 企业iOS应用发布,需要一个https服务器,如何用express.js设置?

xml - 对 Node.js 的 xml 到 json 有什么建议吗?

c++-cli - 给 StreamWriter 一个 std::string 来写入一个 txt 文件

C#,在 2 之后拆分;在同一行

java - 下载目录下写问题

node.js - 通过 Node.js 与 ACR1252U NFC 读卡器对话