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

Node的stream數(shù)據(jù)流你了解嗎

 更新時(shí)間:2022年02月23日 16:14:53   作者:Han_Zhou_Z  
這篇文章主要為大家詳細(xì)介紹了Node的stream數(shù)據(jù)流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

一、Node的數(shù)據(jù)流(stream)

1、處理緩存的方式

(1)一次性全部讀取,然后再進(jìn)行處理。缺點(diǎn)是大文件處理非常耗時(shí),優(yōu)點(diǎn)是過程直觀

(2)讀取一塊處理一塊.優(yōu)點(diǎn)是提高程序的性能

2、四種類型的流

Readable - 其是用于讀操作

Writable - 用在寫操作

Duplex - 其可以用于讀取和寫入操作

Transform - 輸出基于輸入的地方進(jìn)行計(jì)算的一種雙相流

每種流都是事件觸發(fā)器,當(dāng)某個流被調(diào)用時(shí),就會觸發(fā),拋出一個事件:

'data'事件:表示流中有數(shù)據(jù)可以讀取

'end'事件:表示流中沒有數(shù)據(jù)可以讀取

'error'事件:讀寫數(shù)據(jù)錯誤時(shí)觸發(fā)

'finish'事件:數(shù)據(jù)刷新到底層系統(tǒng)時(shí)觸發(fā)

const fs = require('fs');
let str_data = '';
//創(chuàng)建讀數(shù)據(jù)的流
let readerStream = fs.createReadStream('./test.txt');
//設(shè)置流的編碼格式
readerStream.setEncoding('utf8');
//給流綁定事件
readerStream.on('data',function (chunk) {
    str_data += chunk
})
readerStream.on('end',function (){
    console.log("讀取的數(shù)據(jù)是:",str_data)
})
readerStream.on('error',function (err){
    console.log(err.stack)
})
console.log('-----End-----')
//    讀取的數(shù)據(jù)是: 離離原上草,
//    一歲一枯榮;
//    野火燒不盡,
//    春風(fēng)吹又生。
const fs = require('fs');
//創(chuàng)建一個讀數(shù)據(jù)的流
let readerStream = fs.createReadStream('./test.txt')
//創(chuàng)建一個寫數(shù)據(jù)的流
let writerStream = fs.createWriteStream('./out.txt')
//創(chuàng)建管道流
readerStream.pipe(writerStream)
console.log('----End----')
//可以完成復(fù)制,將test文件中的內(nèi)容復(fù)制到out文件中

3、zlib模塊:用于文件的壓縮與解壓縮

(1)壓縮方法:zlib.createGzip()

const fs = require('fs');
const zlib = require('zlib');
//創(chuàng)建一個讀數(shù)據(jù)的流
let readerStream = fs.createReadStream('./test.txt')
                     .pipe(zlib.createGzip())
                     .pipe(fs.createWriteStream('./text.zip'))
readerStream.on('error',function (err) {
    console.log(err.stack)
})
console.log('----End----')
//創(chuàng)建一個名為text.zip的壓縮包

(2)解壓縮方法:zlib.createGunzip()

const fs = require('fs');
const zlib = require('zlib');
fs.createReadStream('./test.zip')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('./db.txt'))
//解壓名為test.zip的壓縮包,并將其中的內(nèi)容復(fù)制到db.txt當(dāng)中

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!       

相關(guān)文章

最新評論

西藏| 呼玛县| 宿松县| 清涧县| 大港区| 内乡县| 武隆县| 新蔡县| 简阳市| 珠海市| 林周县| 壤塘县| 稻城县| 安龙县| 伊春市| 林芝县| 吉安县| 吉木萨尔县| 浑源县| 华阴市| 镇江市| 龙州县| 化隆| 丰城市| 合川市| 康保县| 鄂尔多斯市| 谷城县| 隆子县| 塔河县| 本溪市| 凤城市| 北宁市| 南昌县| 张家界市| 灵丘县| 门源| 印江| 台安县| 青田县| 隆德县|