W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Node.js中的streams基于事件。
所有這些stream類都繼承自基本抽象Stream類,它繼承自EventEmitter。
var stream = require("stream");
var EventEmitter = require("events").EventEmitter;
console.log(new stream.Stream() instanceof EventEmitter); // true
console.log(new stream.Readable({}) instanceof stream.Stream); // true
console.log(new stream.Writable({}) instanceof stream.Stream); // true
console.log(new stream.Duplex({}) instanceof stream.Stream); // true
console.log(new stream.Transform({}) instanceof stream.Stream); // true
上面的代碼生成以下結(jié)果。
所有流都支持使用管道成員函數(shù)可以完成的管道操作。
此函數(shù)稱為管道,因?yàn)樗M命令行管道操作符的行為,例如cat file.txt | grep yourtest
fs
核心模塊提供了用于從文件創(chuàng)建可讀或可寫流的實(shí)用程序函數(shù)。
以下代碼顯示如何將文件從文件系統(tǒng)流式傳輸?shù)接脩艨刂婆_。
var fs = require("fs");
// Create readable stream
var readableStream = fs.createReadStream("./a.js");
// Pipe it to stdout
readableStream.pipe(process.stdout);
你還可以使用pipe鏈接多個stream。
以下代碼從文件創(chuàng)建可讀取流,通過zip變換流管道,然后將其管道到可寫文件流。
這將在文件系統(tǒng)上創(chuàng)建一個zip文件。
var fs = require("fs");
var gzip = require("zlib").createGzip();
var inp = fs.createReadStream("a.js");
var out = fs.createWriteStream("a.js.gz");
// Pipe chain
inp.pipe(gzip).pipe(out);
Node.js中的steams基于事件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: