将流写入缓冲区对象

时间:2017-07-28 15:07:23

标签: node.js buffer fs node-streams

我有一个正在从音频源读取的流,并且我试图将其存储到Buffer中。从我已阅读的documentation开始,您可以使用pipe而不是文件路径将fs.createWriteStream(~buffer~)流转换为一个。

我现在这样做:

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

但是当我运行它时,它会抛出一个错误,指出文件系统调用的Path: must be a string without null bytes

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

1 个答案:

答案 0 :(得分:1)

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

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

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