1. 程式人生 > >node.js 讀取文件--createReadStream

node.js 讀取文件--createReadStream

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