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

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

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

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

1、處理緩存的方式

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

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

2、四種類型的流

Readable - 其是用于讀操作

Writable - 用在寫操作

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

Transform - 輸出基于輸入的地方進行計算的一種雙相流

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

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

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

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

'finish'事件:數(shù)據(jù)刷新到底層系統(tǒng)時觸發(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)文章

最新評論

招远市| 盘山县| 霍林郭勒市| 铜陵市| 桑植县| 乌审旗| 昆明市| 庄河市| 虞城县| 修武县| 竹溪县| 阿巴嘎旗| 潢川县| 冷水江市| 宜春市| 天镇县| 中阳县| 灵石县| 新晃| 策勒县| 成安县| 万山特区| 东兴市| 大田县| 五大连池市| 界首市| 新野县| 金溪县| 徐州市| 肇州县| 新巴尔虎右旗| 巨野县| 宝鸡市| 利川市| 右玉县| 夏邑县| 吐鲁番市| 宣恩县| 都江堰市| 黄山市| 酉阳|