stream

从输入流读取一部分数据,然后将这一部分读取到的数据写入到输出流中,这样能够避免fs.readFile()和fs.writeFile()将Buffer全部写到内存中的问题。

文件的读取速度一般要比写入速度快,如果writeStream.write(chunk)返回false,表示流还在输出流的缓存中,还没有写入到文件中,可以调用readSteam.pasuse()方法将暂停读取,等writeSteam将缓存区中的数据都写入到文件中时,会触发drain事件,这时候再调用readStream.resume()方法继续读取数据。

varfs = require('fs');

var   readStream = fs.createReadStream(' buffer_image.js ');

var writeStream = fs.createWriteStream(' big.js ');

readStream.on ( 'data' , function( chunk ) {   

      if(  writeStream.write ( chunk )  ==false){  

                     console.log(' is pause ')

                      writeStream.pause();

          }

});

readStream.on('end',function(){

             writeStream.end()

});

writeStream.on('drain',function(){

              console.log('is resume')

              readStream.resume()

})

你可能感兴趣的:(stream)