這篇“Node.js怎么使用流實(shí)現(xiàn)邊讀邊寫(xiě)功能”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Node.js怎么使用流實(shí)現(xiàn)邊讀邊寫(xiě)功能”文章吧。
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供右玉企業(yè)網(wǎng)站建設(shè),專(zhuān)注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、html5、小程序制作等業(yè)務(wù)。10年已為右玉眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
具體代碼如下所示:
//10個(gè)數(shù) 10個(gè)字節(jié),每次讀4b,寫(xiě)1b let fs=require("fs"); function pipe(source,target) { //先創(chuàng)建可讀流,再創(chuàng)建可寫(xiě)流 //先讀一次,rs.on(data) //將讀到的類(lèi)容寫(xiě)入目標(biāo)中 ,返回布爾值,如果是ture,繼續(xù)寫(xiě),默認(rèn)情況應(yīng)該是false,暫停讀取 //ws.on('drain'),抽干后,回復(fù)讀取 //監(jiān)聽(tīng)讀取文件完畢后,關(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類(lèi)型 if(ws.write(chunk)===false){ //寫(xiě)不下,停止讀取 rs.pause() } }); ws.on('drain',function () { //每次寫(xiě)的內(nèi)存干了就恢復(fù)讀取 console.log("111"); rs.resume() //恢復(fù)讀取 }); rs.on('end',function (chunk) { ws.end(); }) } pipe('./1.txt','./3.txt')
上面這種寫(xiě)法比較繁瑣,大家看完后,忘記就行
node.js提供給我們內(nèi)置方法pipe
//10個(gè)數(shù) 10個(gè)字節(jié),每次讀4b,寫(xiě)1b let fs=require("fs"); function pipe(source,target) { let rs=fs.createReadStream(source,{highWaterMark:4}); let ws=fs.createWriteStream(target,{highWaterMark:1}); //可讀流到可寫(xiě)流,異步操作,可以保證內(nèi)存不會(huì)被淹沒(méi),讀一點(diǎn),寫(xiě)一點(diǎn) // 如果想看文件類(lèi)容,使用readFile rs.pipe(ws); } pipe('./1.txt','./4.txt')
直接將讀取的流操作到寫(xiě)入流中,還是異步操作
以上就是關(guān)于“Node.js怎么使用流實(shí)現(xiàn)邊讀邊寫(xiě)功能”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文名稱(chēng):Node.js怎么使用流實(shí)現(xiàn)邊讀邊寫(xiě)功能
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article6/jggoog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、品牌網(wǎng)站建設(shè)、小程序開(kāi)發(fā)、標(biāo)簽優(yōu)化、企業(yè)網(wǎng)站制作、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)