node.js 讀取文件--createReadStream
阿新 • • 發佈:2017-09-12
font hunk -s ring code col 基於 更改 mar
createReadStream 是fs模塊裏面讀流的一個方法
這個方法基於fs模塊的,所以我們先要引進fs模塊
let fs=require("fs");
createReadStream 讀取文件,有兩個參數
第一個參數,讀取文件的路徑
第二個參數 highWaterMark 最高水位線,默認最多讀取64K
讀取的類容都是buffer類型
返回的結果是一個可讀流的實例,是非流動模式---我們最後要轉為流動模式
先要定義一下我們讀流的變量,假設我們有一個1.txt文件,我們要讀取1.txt裏面的類容
我們先設置最高水位線每次讀取1k
let rs=fs.createReadStream(‘./1.txt‘,{highWaterMark:1})
我們的rs裏面有綁定了兩個事件方法data和end
實例
let fs=require("fs"); // 第一個參數,讀取文件的路徑 //第二個參數 highWaterMark 最高水位線,默認最多讀取64K //讀取的類容都是buffer類型 //返回的結果是一個可讀流的實例,是非流動模式---我們最後要轉為流動模式 // 轉流動模式需要on事件監測 let rs=fs.createReadStream(‘./1.txt‘,{highWaterMark:1}) //在內部不斷觸發rs.emit(‘data‘,數據);data不能更改,留動模式開啟後,數據會瘋狂觸發data事件 let arr=[]; rs.on(‘data‘,function (chunk) { //chunk是buffer類型 arr.push(chunk); }) //監聽文件讀取完畢,會自動觸發一次end事件,沒有讀取完是不會觸發的 //Buffer.concat合並小buffer rs.on(‘end‘,function (chunk) { console.log( Buffer.concat(arr).toString()); }) // 監聽錯誤 rs.on(‘error‘,function (err) { console.log(err); }) // rs.resume() 恢復讀取// rs.pause() 暫停讀取 //這兩個都控制是否繼續觸發data事件
node.js 讀取文件--createReadStream