ngui/reader
這里提供的方法可以針對(duì)不協(xié)議的uri路徑進(jìn)行基本的讀取操作
現(xiàn)在支持的路徑類型:
http://
or https://
- 可使用同步或異步方式進(jìn)行讀取,但不能讀取目錄或測(cè)試存在,
readdirSync()
返回空數(shù)組而isFileSync()
永遠(yuǎn)返回false
。file://
本地文件路徑。/var/data
or var/data
都可做為本地路徑,并不會(huì)出錯(cuò)。zip://
這是zip
包內(nèi)路徑的一種表示方法,zip:///var/data/test.zip@a.txt
這個(gè)路徑表示zip:///var/data/test.zip
中的a.txt
文件。注意這個(gè)路徑一定要存在于本地文件系統(tǒng)中Object: StreamData
讀取文件流時(shí)返回的結(jié)構(gòu)類型, 這是個(gè)Object
類型描述并沒有實(shí)際存在的構(gòu)造函數(shù)
Buffer
} 當(dāng)前讀取到的Buffer數(shù)據(jù)bool
} 讀取是否完成uint
} 已經(jīng)讀取到的數(shù)據(jù)總量uint
} 全部數(shù)據(jù)源的總大小,有可能是0
,為0
表示數(shù)據(jù)大小未知,可能為無限大比如為視頻直播數(shù)據(jù)流
異步讀取文件流,并返回中止id
通過中止id
可強(qiáng)制取消當(dāng)前的讀取任務(wù)
成功后通過回調(diào)返回StreamData
類型數(shù)據(jù)
Callback: cb(data)
(data:StreamData
)
異步讀取文件,并返回中止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*/ }));
同步讀取文件,成功返回文件Buffer
失敗會(huì)拋出異常
這個(gè)方法不能處理http://
與https://
類型的路徑,如果傳入這種路徑立即返回一個(gè)空數(shù)組Array
這個(gè)方法也不會(huì)拋出異常,如果不能讀取路徑,只會(huì)返回空數(shù)組Array
測(cè)試文件或目錄是否存在,如果文件存在會(huì)返回false
這個(gè)方法不能處理http://
與https://
類型的路徑,如果傳入這種路徑立即返回false
測(cè)試文件是否存在
測(cè)試目錄是否存在
通過id
中止異步任務(wù),與fs.abort
功能相同
uint
} 傳入的中止id
更多建議: