欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能

 更新時(shí)間:2017年09月11日 08:39:35   作者:八bug哥哥  
本文通過代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

//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')

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

總結(jié)

以上所述是小編給大家介紹的Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于node實(shí)現(xiàn)websocket協(xié)議

    基于node實(shí)現(xiàn)websocket協(xié)議

    這篇文章主要介紹了基于node實(shí)現(xiàn)websocket協(xié)議的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Nodejs在局域網(wǎng)配置https訪問的實(shí)現(xiàn)方法

    Nodejs在局域網(wǎng)配置https訪問的實(shí)現(xiàn)方法

    做一個(gè)局域網(wǎng)WebRTC視頻聊天系統(tǒng),需要用到HTTPS。因此,配置Node.js使其支持HTTPS訪問。這篇文章主要介紹了Nodejs在局域網(wǎng)配置https訪問的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2020-10-10
  • Nodejs對(duì)postgresql基本操作的封裝方法

    Nodejs對(duì)postgresql基本操作的封裝方法

    今天小編就為大家分享一篇Nodejs對(duì)postgresql基本操作的封裝方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    這篇文章主要介紹了Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解,本文使用了Node.js中的setTimeout和setInterval函數(shù),需要的朋友可以參考下
    2014-08-08
  • node.js中的console.warn方法使用說明

    node.js中的console.warn方法使用說明

    這篇文章主要介紹了node.js中的console.warn方法使用說明,本文介紹了console.warn的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 為何從eggjs升級(jí)到midwayjs的原因詳解

    為何從eggjs升級(jí)到midwayjs的原因詳解

    這篇文章主要為大家介紹了為何從eggjs升級(jí)到midwayjs的原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React+react-dropzone+node.js實(shí)現(xiàn)圖片上傳的示例代碼

    React+react-dropzone+node.js實(shí)現(xiàn)圖片上傳的示例代碼

    本篇文章主要介紹了React+react-dropzone+node.js實(shí)現(xiàn)圖片上傳的示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • nodemon實(shí)現(xiàn)Typescript項(xiàng)目熱更新的示例代碼

    nodemon實(shí)現(xiàn)Typescript項(xiàng)目熱更新的示例代碼

    這篇文章主要介紹了nodemon實(shí)現(xiàn)Typescript項(xiàng)目熱更新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 深入Node TCP模塊的理解

    深入Node TCP模塊的理解

    這篇文章主要介紹了深入Node TCP模塊的理解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 簡(jiǎn)單談?wù)刵ode.js 版本控制 nvm和 n

    簡(jiǎn)單談?wù)刵ode.js 版本控制 nvm和 n

    大量開發(fā)者的貢獻(xiàn)使Node版本的迭代速度很快,版本很多(橫跨0.6到0.11),所以升級(jí)Node版本就成為了一個(gè)問題。目前有n和nvm這兩個(gè)工具可以對(duì)Node進(jìn)行無痛升級(jí),本文簡(jiǎn)單介紹一下二者的使用。
    2015-10-10

最新評(píng)論