node.js - node fs模块的写入问题

浏览:27日期:2022-10-01

问题描述

我现在通过一个mp3创建了一个 可读流,用来读取数据,让后用一个可写流入写入数据,但是写出的数据为空,不知道为什么?求大神讲究我的错误

var ws21_4 = fs.createWriteStream(__dirname + ’/test/Until You.mp3’);var rs21_4 = fs.createReadStream(__dirname + ’/test/untiyou.mp3’);rs21_4.on(’data’, function (data) { var flag = ws21_4.write(data); console.log(flag); if (flag == false) { //ws21_4.close(); // 2.加这么一句 会有64K很少一部分。 }//1. 输出的文件0字节。。。});

所以我猜想会不会我哪里流程没有处理正确?但是查了文档也没找到啥。

问题解答

回答1:

fs.createReadStream(__dirname + ’/test/Until You.mp3’) .pipe(fs.createWriteStream(__dirname + ’/test/untiyou.mp3’));

或者

var rs = fs.createReadStream(__dirname + ’/test/Until You.mp3’);var ws = fs.createWriteStream(__dirname + ’/test/untiyou.mp3’);rs.on(’data’, function (chunk) { if (ws.write(chunk) === false) {rs.pause(); }});rs.on(’end’, function () { ws.end();});ws.on(’drain’, function () { rs.resume();});回答2:

加个关闭试一下

rs21_4.on(’end’, function() { // 当没有数据时,关闭数据流 ws21_4.end();});

相关文章: