Home  >  Q&A  >  body text

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

我现在通过一个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字节。。。
});

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

ringa_leeringa_lee2720 days ago419

reply all(2)I'll reply

  • PHP中文网

    PHP中文网2017-04-17 15:29:43

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

    or

    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();
    });

    reply
    0
  • 高洛峰

    高洛峰2017-04-17 15:29:43

    Add a close and try it

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

    reply
    0
  • Cancelreply