【发布时间】:2019-07-31 12:48:49
【问题描述】:
我目前正在尝试使用 Node.js 通过 fs.createWriteStream 和 fs.createReadStream 函数将文件的内容复制到另一个文件中。
更具体地说,该文件是我想要复制的音乐样本。此外,我希望生成的文件能够像任何音乐或视频一样被播放器读取。这是最后一点,我没有设法执行。这些文件确实是重复的,但是我的播放器不接受生成的文件作为可读文件,就像它以某种方式损坏一样。
我检查了它的内容,这似乎与编程逻辑无关,因为原始文件的数据已正确转置到副本中。这是我的脚本,如果你想看看。
const express = require('express')
const app = express()
const fs = require("fs")
var Promise = require("bluebird")
Promise.promisifyAll(fs)
const path = require('path')
const file1 = path.join(__dirname, 'sample1.wav') // The file to copy
const file2 = path.join(__dirname, 'sample2.wav') // The destination of the new file
app.use(async(req,res,next)=>{
let file1_stream = await fs.createReadStream(file1)
let file2_stream = await fs.createWriteStream(file2)
file2_stream.pipe(file2_stream)
next()
})
.listen(8080)
我猜这个操作并不像上面所示的复制流并用管道注入那么简单。如果有人知道我在这里想念什么,我全神贯注。提前致谢。
【问题讨论】: