真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

node.js中stream流中可讀流和可寫流的實(shí)現(xiàn)與使用方法實(shí)例分析-創(chuàng)新互聯(lián)

本文實(shí)例講述了node.js中stream流中可讀流和可寫流的實(shí)現(xiàn)與使用方法。分享給大家供大家參考,具體如下:

成都創(chuàng)新互聯(lián)一直在為企業(yè)提供服務(wù),多年的磨煉,使我們?cè)趧?chuàng)意設(shè)計(jì),成都全網(wǎng)營(yíng)銷到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長(zhǎng)傾聽企業(yè)需求,挖掘用戶對(duì)產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過(guò)十多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)成都服務(wù)器托管app開發(fā)定制、手機(jī)移動(dòng)建站、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)絡(luò)整合營(yíng)銷。

node.js中的流 stream 是處理流式數(shù)據(jù)的抽象接口。node.js 提供了很多流對(duì)象,像http中的request和response,和 process.stdout 都是流的實(shí)例。

流可以是 可讀的,可寫的,或是可讀可寫的。所有流都是 events 的實(shí)例。

一、流的類型

node.js中有四種基本流類型:

1、Writable 可寫流 (例:fs.createWriteStream() )

2、Readable 可讀流 (例:fs.createReadStream() )

3、Duplex 可讀又可寫流 (例:net.Socket )

4、Transform 讀寫過(guò)程中可修改或轉(zhuǎn)換數(shù)據(jù)的 Duplex 流 (例:zlib.createDeflate() )

二、流中的數(shù)據(jù)有兩種模式

1、二進(jìn)制模式,都是 string字符串  和 Buffer。

2、對(duì)象模式,流內(nèi)部處理的是一系統(tǒng)普通對(duì)象。

三、可讀流的兩種模式

1、流動(dòng)模式 ( flowing ) ,數(shù)據(jù)自動(dòng)從系統(tǒng)底層讀取,并通過(guò)事件,盡可能快地提供給應(yīng)用程序。

2、暫停模式 ( paused ),必須顯式的調(diào)用 read() 讀取數(shù)據(jù)。

可讀流 都開始于暫停模式,可以通過(guò)如下方法切換到流動(dòng)模式:

1、添加 'data' 事件回調(diào)。

2、調(diào)用 resume()。

3、調(diào)用 pipe()。

可讀流通過(guò)如下方法切換回暫停模式:

1、如果沒(méi)有管道目標(biāo),調(diào)用 pause()。

2、如果有管道目標(biāo),移除所有管道目標(biāo),調(diào)用 unpipe() 移除多個(gè)管道目標(biāo)。

四、創(chuàng)建可讀流,并監(jiān)聽事件

const fs = require('fs');
//創(chuàng)建一個(gè)文件可讀流
let rs = fs.createReadStream('./1.txt', {
  //文件系統(tǒng)標(biāo)志
  flags: 'r',
  //數(shù)據(jù)編碼,如果調(diào)置了該參數(shù),則讀取的數(shù)據(jù)會(huì)自動(dòng)解析
  //如果沒(méi)調(diào)置,則讀取的數(shù)據(jù)會(huì)是 Buffer
  //也可以通過(guò) rs.setEncoding() 進(jìn)行設(shè)置
  encoding: 'utf8',
  //文件描述符,默認(rèn)為null
  fd: null,
  //文件權(quán)限
  mode: 0o666,
  //文件讀取的開始位置
  start: 0,
  //文件讀取的結(jié)束位置(包括結(jié)束位置)
  end: Infinity,
  //讀取緩沖區(qū)的大小,默認(rèn)64K
  highWaterMark: 3
});
//文件被打開時(shí)觸發(fā)
rs.on('open', function () {
  console.log('文件打開');
});
//監(jiān)聽data事件,會(huì)讓當(dāng)前流切換到流動(dòng)模式
//當(dāng)流中將數(shù)據(jù)傳給消費(fèi)者后觸發(fā)
//由于我們?cè)谏厦媾渲昧?highWaterMark 為 3字節(jié),所以下面會(huì)打印多次。
rs.on('data', function (data) {
  console.log(data);
});
//流中沒(méi)有數(shù)據(jù)可供消費(fèi)者時(shí)觸發(fā)
rs.on('end', function () {
  console.log('數(shù)據(jù)讀取完畢');
});
//讀取數(shù)據(jù)出錯(cuò)時(shí)觸發(fā)
rs.on('error', function () {
  console.log('讀取錯(cuò)誤');
});
//當(dāng)文件被關(guān)閉時(shí)觸發(fā)
rs.on('close', function () {
  console.log('文件關(guān)閉');
});

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文標(biāo)題:node.js中stream流中可讀流和可寫流的實(shí)現(xiàn)與使用方法實(shí)例分析-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/dpgehd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部