nodeJS基礎 Stream用法

2021-09-11 12:31:51 字數 1672 閱讀 9250

stream是nodejs的乙個核心模組,在nodejs中應用非常廣泛,比如http 伺服器request和response物件都是流

可讀流的用法

let fs = require('fs');

let path = require('path');

let rs = fs.createreadstream(path.join(__dirname, '1.txt'), );

複製**

預設情況下不會將檔案中的內容輸出

內部會先建立乙個buffer先讀取3b(三位元組)

如果你不進行操作,預設是非流動模式,暫停狀態

當監聽data事件後,開始發射資料

rs.on('data', function (data) );

複製**

暫停方法 暫停data事件觸發

rs.pause();

複製**

恢復方法 恢復data事件觸發

rs.resume();

複製**

除了data事件,可讀流還能監聽其他一些事件

end事件(暫停)

該事件會在讀完資料後被觸發

rs.on('end', function

() );

複製**

error事件

如果有錯誤會會觸發

rs.on('error', function (err) );

複製**

open事件

開啟檔案

rs.on('open', function

() );

複製**

close事件

關閉檔案

rs.on('close', function

() );

複製**

設定編碼

rs.setencoding('utf8');

複製**

可寫流的用法

let fs = require('fs');

let ws = fs.createwritestream('./4.txt', );

複製**

相對於可讀流,可寫流的方法就少多了

write方法

寫入後會返回乙個布林值,來判斷系統快取區是否滿了

let flag = ws.write('寫入的內容','utf8',function

(){});

console.log(flag);

複製**

end方法

關閉方法,再關閉前可以最後傳入一次資料

ws.write('最後寫入的內容','utf8',function

(){});

複製**

drain方法

抽乾方法 當寫入完後,會觸發 必須快取區滿了被清空後才會出發drain事件

ws.on('drain', function

() )

複製**

nodejs中流 stream 的理解

nodejs的fs模組並沒有提供乙個copy的方法,但我們可以很容易的實現乙個,比如 var source fs.readfilesync path to source fs.writefilesync path to dest source 如上面高大上的所示,我們把檔案比作裝水的桶,而水就是檔案...

了解nodeJs中的流(stream)

nodejs中的很多地方都用到了流,流是乙個很常見的概念,乙個http請求,控制台輸入輸出的形式都是流。流可以分為三種 可讀流 readable 可寫流 writable 既能讀又能寫 duplex 其中第三種流又可以分為全雙工流duplex和轉換流transform,另外,所有的流都是evente...

了解nodeJs中的流(stream)

nodejs中的很多地方都用到了流,流是乙個很常見的概念,乙個http請求,控制台輸入輸出的形式都是流。流可以分為三種 可讀流 readable 可寫流 writable 既能讀又能寫 duplex 其中第三種流又可以分為全雙工流duplex和轉換流transform,另外,所有的流都是evente...