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

})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容