node.js 讀取文件--createReadStream


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事件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM