1. 程式人生 > >Node.js 第八章- Stream(流)

Node.js 第八章- Stream(流)

一,Stream 是一個抽象介面,Node物件有很多物件實現這個介面。例如,對http伺服器發起請求的request物件就是一個Stream,還有stdout(標準輸出)

二,Node.js Stream有四種流型別:

1. Readable - 刻度操作

2. Writable - 可寫操作 

3. Duplex - 可讀可寫操作

4. Transform - 操作被寫入資料,然後讀出結果。

 

所有的Stream物件都是EventEmitter的例項。

常用事件:
1. data - 當有資料可讀時觸發。

2.end - 沒有更多的資料可讀時觸發。

3.error - 在接收和寫入過程中發生錯誤時觸發。

4.finish - 所有資料已被寫入到底層系統時觸發。

二,從流中讀取資料

建立stream.txt檔案,如下:

 

 

三,寫入流

建立一個js檔案,output.js

 

四,管道流

管道提供了一個輸出流到輸入流的機制。

通常我們用於從一個流中獲取資料並將資料傳遞到另外一個流中。

 

五,鏈式流

鏈式是通過連線輸出流到另外一個流 並建立多個流操作鏈的機制。

鏈式流一般用於管道操作。

接下去用鏈式流和管道來壓縮和解壓檔案。

建立一個compress.js

以上是壓縮檔案。

接下來,解壓上面的檔案。

建立decompress.js