node.js - 将流写入缓冲区对象

标签 node.js buffer fs node-streams

我有一个正在从音频源读取的流,我正在尝试将其存储到缓冲区中。来自 documentation我读过,您可以使用 fs.createWriteStream(~buffer~) 而不是文件路径将流通过管道传输到一个流中。

我目前正在这样做:

const outputBuffer = Buffer.alloc(150000)
const stream = fs.createWriteStream(outputBuffer)

但是当我运行它时,它会抛出一个错误,指出文件系统调用的Path:必须是一个不带空字节的字符串

如果我误解了文档或遗漏了一些明显的内容,请告诉我!

最佳答案

fs.createWriteStream() 的第一个参数是要读取的文件名。这就是您收到该特定错误的原因。

无法从流中直接读取到现有的缓冲区。有a node EP支持这一点,但它或多或少已经消失了,因为它存在一些潜在的问题。

现在您需要手动复制字节,或者如果您不希望 Node 分配额外的缓冲区,则需要手动调用 fs.open(), fs .read()(这是允许您传入 Buffer 实例以及偏移量的方法)和 fs.close()

关于node.js - 将流写入缓冲区对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45376875/

相关文章:

node.js - 异步编程中的循环

node.js - 如何使用 Heroku 在同一个子域上托管多个 node.js 应用程序?

javascript - 如何在node.js中触发firebase http函数?

java - 为什么缓冲区大小对此文件读取操作没有影响

javascript - 在 Meteor 中使用 fs 模块获取 Uncaught TypeError _fs2.default.readFile 不是函数

node.js - 修改示例 Hello World Node.js 代码在 Google Compute Engine 中未生效

写入 char* 数组的 char 会发生某种变化

c - 如何处理基于 C 的应用程序内部的数据流?

reactjs - fs.readdirSync 不是一个函数 - Electron + React.js

javascript - Node.js:无法从 array.map() 返回新数组