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...