1. 程式人生 > >nodejs筆記之流(stream)

nodejs筆記之流(stream)

nis tab and 出錯 htm ons 設置 索引 進行

nodejs的stream有四種流類型:

可讀:Readable
可寫:Writable
可讀可寫:Duplex
操作被寫入數據,然後讀出結果:Transform
常用事件:
data:有數據可讀時觸發
end:沒有數據可讀觸發
error:讀寫過程出錯觸發;
finish:所有數據被寫入到底層系統時觸發;

創建可讀流:

// 註: utf8中,中文占三個字符
// var data = ‘‘;

// 創建可讀流二
var fs = require("fs");
var readerStream = fs.createReadStream(‘./file/333.txt‘,{
    flags:‘r‘,//我們要對文件進行何種操作
start:3,//從索引為3的位置開始讀 //這是我的見過唯一一個包括結束索引的 end:40,//讀到索引為8結束 highWaterMark:3//緩沖區大小 }); // 設置編碼為 utf8。 readerStream.setEncoding(‘UTF8‘); // 處理流事件 --> data, end, and error readerStream.on(‘data‘, function(chunk) { // data += chunk; console.log(chunk + "------"); }); readerStream.on(‘end‘,function
(data){ console.log(data); }); readerStream.on(‘error‘, function(err){ console.log(err.stack); }); console.log("程序執行完畢");

管道讀寫操作:

//讀取一個文件內容後寫入另一個文件中,會覆蓋原有內容

// 創建一個可寫流
var fs = require("fs");
var readStream = fs.createReadStream(‘./file/demo.html‘);
var writeStream = fs.createWriteStream(‘output.html‘);

// 管道讀寫操作 // 讀取 input.txt 文件內容,並將內容寫入到 output.txt 文件中 readStream.pipe(writeStream); console.log("程序執行完畢"); //讀取一個文件內容後寫入另一個文件中,追加在原有內容後 // 追加 var read = fs.createReadStream(‘./file/1.txt‘); //設置第二個參數append var write = fs.createWriteStream(‘output.txt‘, { ‘flags‘: ‘a‘ }); //管道流讀寫操作 read.pipe(write); console.log(‘執行完畢‘);

nodejs筆記之流(stream)