reader.md

2018-11-22 18:03 更新

ngui/reader

這里提供的方法可以針對不協(xié)議的uri路徑進(jìn)行基本的讀取操作

現(xiàn)在支持的路徑類型:

  • http:// or https:// - 可使用同步或異步方式進(jìn)行讀取,但不能讀取目錄或測試存在, readdirSync()返回空數(shù)組而isFileSync()永遠(yuǎn)返回false。

  • file:// 本地文件路徑。/var/data or var/data 都可做為本地路徑,并不會出錯。

  • zip:// 這是zip包內(nèi)路徑的一種表示方法,zip:///var/data/test.zip@a.txt 這個路徑表示zip:///var/data/test.zip中的a.txt文件。注意這個路徑一定要存在于本地文件系統(tǒng)中

Object: StreamData

讀取文件流時(shí)返回的結(jié)構(gòu)類型, 這是個Object類型描述并沒有實(shí)際存在的構(gòu)造函數(shù)

StreamData.data

  • {Buffer} 當(dāng)前讀取到的Buffer數(shù)據(jù)

StreamData.complete

  • {bool} 讀取是否完成

StreamData.size

  • {uint} 已經(jīng)讀取到的數(shù)據(jù)總量

StreamData.total

  • {uint} 全部數(shù)據(jù)源的總大小,有可能是0,為0表示數(shù)據(jù)大小未知,可能為無限大比如為視頻直播數(shù)據(jù)流

readStream(path[,cb])

異步讀取文件流,并返回中止id

通過中止id可強(qiáng)制取消當(dāng)前的讀取任務(wù)

成功后通過回調(diào)返回StreamData類型數(shù)據(jù)

Callback: cb(data) (data:StreamData)

  • @arg path {String} 要讀取的文件路徑
  • @arg [cb] {Function}
  • @ret {uint} return abort id

read(path[,cb])

異步讀取文件,并返回中止id,通過中止id可強(qiáng)制取消當(dāng)前的讀取任務(wù)

成功后通過回調(diào)返回Buffer數(shù)據(jù)

Callback: cb(data) (data:Buffer)

Example:

// async read file stream 
reader.readStream('http://www.baidu.com', function(d){ }));
reader.readStream('file:///var/data/test.txt', function(d){ }));
reader.readStream('zip:///var/data/test.zip@aa.txt', function(d){ 
    /*Success*/ 
    console.log(d.data.length, d.complete);
}));


// async read file
reader.read('http://www.baidu.com', function(d){ }));
reader.read('file:///var/data/test.txt', function(d){ }));
reader.read('zip:///var/data/test.zip@aa.txt', function(d){ 
    /*Success*/ 
    console.log(d.length);
}.catch(e=>{ /*Fail*/ }));

readSync(path)

同步讀取文件,成功返回文件Buffer失敗會拋出異常

readdirSync(path)

讀取目錄列表信息,返回DirentArray

這個方法不能處理http://https://類型的路徑,如果傳入這種路徑立即返回一個空數(shù)組Array

這個方法也不會拋出異常,如果不能讀取路徑,只會返回空數(shù)組Array

existsSync(path)

測試文件或目錄是否存在,如果文件存在會返回false

這個方法不能處理http://https://類型的路徑,如果傳入這種路徑立即返回false

isFileSync(path)

測試文件是否存在

isDirectorySync(path)

測試目錄是否存在

abort(id)

通過id中止異步任務(wù),與fs.abort功能相同

  • @arg id {uint} 傳入的中止id

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號