将流写入缓冲区对象
Write stream into buffer object
我有一个正在从音频源读取的流,我正在尝试将其存储到 Buffer
中。从我读过的 documentation 中,您可以使用 fs.createWriteStream(~buffer~)
而不是文件路径将流 pipe
合并为一个。
我目前正在这样做:
const outputBuffer = Buffer.alloc(150000)
const stream = fs.createWriteStream(outputBuffer)
但是当我 运行 它时,它会抛出一个错误,指出 Path: must be a string without null bytes
用于文件系统调用。
如果我误解了文档或遗漏了一些明显的东西,请告诉我!
fs.createWriteStream()
的第一个参数是要读取的文件名。这就是您收到该特定错误的原因。
无法直接从流读取到现有 Buffer
。有 a node EP 支持这一点,但它或多或少地消失了,因为它有一些潜在的问题。
现在您需要手动复制字节,或者如果您不希望节点分配额外的缓冲区,您将需要手动调用 fs.open()
、fs.read()
(这是允许您传入 Buffer
实例以及偏移量的方法)和 fs.close()
.
我有一个正在从音频源读取的流,我正在尝试将其存储到 Buffer
中。从我读过的 documentation 中,您可以使用 fs.createWriteStream(~buffer~)
而不是文件路径将流 pipe
合并为一个。
我目前正在这样做:
const outputBuffer = Buffer.alloc(150000)
const stream = fs.createWriteStream(outputBuffer)
但是当我 运行 它时,它会抛出一个错误,指出 Path: must be a string without null bytes
用于文件系统调用。
如果我误解了文档或遗漏了一些明显的东西,请告诉我!
fs.createWriteStream()
的第一个参数是要读取的文件名。这就是您收到该特定错误的原因。
无法直接从流读取到现有 Buffer
。有 a node EP 支持这一点,但它或多或少地消失了,因为它有一些潜在的问题。
现在您需要手动复制字节,或者如果您不希望节点分配额外的缓冲区,您将需要手动调用 fs.open()
、fs.read()
(这是允许您传入 Buffer
实例以及偏移量的方法)和 fs.close()
.