最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法

 更新時(shí)間:2017年09月11日 08:56:15   作者:八bug哥哥  
下面小編就為大家?guī)硪黄猲ode.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

如下所示:

//10個(gè)數(shù) 10個(gè)字節(jié),每次讀4b,寫1b
let fs=require("fs");
function pipe(source,target) {
  //先創(chuàng)建可讀流,再創(chuàng)建可寫流
  //先讀一次,rs.on(data)
  //將讀到的類容寫入目標(biāo)中 ,返回布爾值,如果是ture,繼續(xù)寫,默認(rèn)情況應(yīng)該是false,暫停讀取
  //ws.on('drain'),抽干后,回復(fù)讀取
  //監(jiān)聽讀取文件完畢后,關(guān)閉讀取rs.on('end')

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});

  rs.on('data',function (chunk) { //chunk是buffer類型

    if(ws.write(chunk)===false){
      //寫不下,停止讀取
      rs.pause()
    }

  });
  ws.on('drain',function () {
    //每次寫的內(nèi)存干了就恢復(fù)讀取
    console.log("111");
    rs.resume() //恢復(fù)讀取
  });
  rs.on('end',function (chunk) {
    ws.end();
  })

}
pipe('./1.txt','./3.txt')

上面這種寫法比較繁瑣,大家看完后,忘記就行

node.js提供給我們內(nèi)置方法pipe

//10個(gè)數(shù) 10個(gè)字節(jié),每次讀4b,寫1b
let fs=require("fs");
function pipe(source,target) {

  let rs=fs.createReadStream(source,{highWaterMark:4});
  let ws=fs.createWriteStream(target,{highWaterMark:1});
  //可讀流到可寫流,異步操作,可以保證內(nèi)存不會(huì)被淹沒,讀一點(diǎn),寫一點(diǎn)
  // 如果想看文件類容,使用readFile

  rs.pipe(ws);
}
pipe('./1.txt','./4.txt')

直接將讀取的流操作到寫入流中,還是異步操作

以上這篇node.js 利用流實(shí)現(xiàn)讀寫同步,邊讀邊寫的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

黑山县| 利津县| 永兴县| 龙里县| 定南县| 江西省| 灌云县| 定兴县| 黔西| 兰坪| 昌乐县| 习水县| 台湾省| 永川市| 克什克腾旗| 邵东县| 明水县| 台前县| 连州市| 沁水县| 北票市| 白城市| 安平县| 永丰县| 象山县| 陆河县| 彰化市| 柘荣县| 宁津县| 清新县| 信阳市| 上饶县| 广水市| 荥经县| 乃东县| 九寨沟县| 岳普湖县| 屯留县| 金塔县| 康平县| 维西|