亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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ā)器,當某個流被調(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');
//設置流的編碼格式
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ù)是: 離離原上草,
//    一歲一枯榮;
//    野火燒不盡,
//    春風吹又生。
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----')
//可以完成復制,將test文件中的內(nèi)容復制到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)容復制到db.txt當中

總結

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

相關文章

  • 修改NPM全局模式的默認安裝路徑的方法

    修改NPM全局模式的默認安裝路徑的方法

    這篇文章主要介紹了修改NPM全局模式的默認安裝路徑的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Nodejs+express+ejs簡單使用實例代碼

    Nodejs+express+ejs簡單使用實例代碼

    本篇文章主要介紹了Nodejs+express+ejs簡單使用實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫的方法

    Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫的方法

    這篇文章主要介紹了Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫的方法,這里默認已經(jīng)裝配好了Node環(huán)境然后我們利用npm包管理工具來進行配置,需要的朋友可以參考下
    2016-03-03
  • 淺談Node.js爬蟲之網(wǎng)頁請求模塊

    淺談Node.js爬蟲之網(wǎng)頁請求模塊

    本篇文章主要介紹了淺談Node.js爬蟲之網(wǎng)頁請求模塊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Nodejs新特性async和await的使用詳解

    Nodejs新特性async和await的使用詳解

    這篇文章主要介紹了Nodejs新特性async和await的使用,主要包括Es6常見語法的使用及Async、Await和Promise的示例代碼,需要的朋友可以參考下
    2022-09-09
  • PostgreSQL Node.js實現(xiàn)函數(shù)計算方法示例

    PostgreSQL Node.js實現(xiàn)函數(shù)計算方法示例

    這篇文章主要給大家介紹了關于PostgreSQL Node.js實現(xiàn)函數(shù)計算的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-02-02
  • 使用Jasmine和Karma對AngularJS頁面程序進行測試

    使用Jasmine和Karma對AngularJS頁面程序進行測試

    這篇文章主要介紹了使用Jasmine和Karma對AngularJS頁面程序進行測試的方法,以Node.js為環(huán)境,非常適合JavaScript的全棧開發(fā)時使用,需要的朋友可以參考下
    2016-03-03
  • PM2自動部署代碼步驟流程總結

    PM2自動部署代碼步驟流程總結

    這篇文章主要介紹了PM2自動部署代碼步驟流程總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • node.js發(fā)送郵件email的方法詳解

    node.js發(fā)送郵件email的方法詳解

    這篇文章主要介紹了node.js發(fā)送郵件email的方法,結合實例形式詳細分析了node.js發(fā)送郵件的原理、操作步驟、注意事項及常見問題解決方法,需要的朋友可以參考下
    2017-01-01
  • Cli Todo命令行todo工具使用演示

    Cli Todo命令行todo工具使用演示

    這篇文章主要為大家介紹了Cli Todo命令行todo工具使用演示示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論