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è)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- node.js基于fs模塊對(duì)系統(tǒng)文件及目錄進(jìn)行讀寫操作的方法詳解
- Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能
- 基于node.js的fs核心模塊讀寫文件操作(實(shí)例講解)
- Node.js Sequelize如何實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離
- Node.js的文件權(quán)限及讀寫flag詳解
- Node.js讀寫文件之批量替換圖片的實(shí)現(xiàn)方法
- Node.js Streams文件讀寫操作詳解
- 在Node.js應(yīng)用中讀寫Redis數(shù)據(jù)庫的簡單方法
- 詳解Node.js讀寫中文內(nèi)容文件操作
相關(guān)文章
Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能
本文通過代碼給大家介紹了Node.js 使用流實(shí)現(xiàn)讀寫同步邊讀邊寫功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的額朋友參考下吧2017-09-09koa2實(shí)現(xiàn)登錄注冊(cè)功能的示例代碼
這篇文章主要介紹了koa2實(shí)現(xiàn)登錄注冊(cè)功能的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12Windows下快速搭建NodeJS本地服務(wù)器的步驟
本篇文章主要介紹了Windows下快速搭建NodeJS本地服務(wù)器的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-08-08Node.js全局對(duì)象Global的實(shí)現(xiàn)
在Nodejs下全局變量和全局函數(shù)都是可以使用global來訪問到的,本文主要介紹了Node.js全局對(duì)象Global的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime
這篇文章主要介紹了Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫進(jìn)行日期格式化的實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了express框架引入EJS模版以及導(dǎo)入 silly-datetime 庫的格式化方法傳遞給EJS模版使用的相關(guān)操作技巧,需要的朋友可以參考下2023-05-05