reader.md
ngui/reader
这里提供的方法可以针对不协议的uri路径进行基本的读取操作
现在支持的路径类型:
http://orhttps://- 可使用同步或异步方式进行读取,但不能读取目录或测试存在,readdirSync()返回空数组而isFileSync()永远返回false。
file://本地文件路径。/var/dataorvar/data都可做为本地路径,并不会出错。
zip://这是zip包内路径的一种表示方法,zip:///var/data/test.zip@a.txt这个路径表示zip:///var/data/test.zip中的a.txt文件。注意这个路径一定要存在于本地文件系统中
Object: StreamData
读取文件流时返回的结构类型, 这是个Object类型描述并没有实际存在的构造函数
StreamData.data
- {
Buffer} 当前读取到的Buffer数据
StreamData.complete
- {
bool} 读取是否完成
StreamData.size
- {
uint} 已经读取到的数据总量
StreamData.total
- {
uint} 全部数据源的总大小,有可能是0,为0表示数据大小未知,可能为无限大比如为视频直播数据流
readStream(path[,cb])
异步读取文件流,并返回中止id
通过中止id可强制取消当前的读取任务
成功后通过回调返回StreamData类型数据
Callback: cb(data) (data:StreamData)
read(path[,cb])
异步读取文件,并返回中止id,通过中止id可强制取消当前的读取任务
成功后通过回调返回Buffer数据
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)
这个方法不能处理http://与https://类型的路径,如果传入这种路径立即返回一个空数组Array
这个方法也不会抛出异常,如果不能读取路径,只会返回空数组Array
existsSync(path)
测试文件或目录是否存在,如果文件存在会返回false
这个方法不能处理http://与https://类型的路径,如果传入这种路径立即返回false
isFileSync(path)
测试文件是否存在
isDirectorySync(path)
测试目录是否存在
abort(id)
通过id中止异步任务,与fs.abort功能相同
- @arg id {
uint} 传入的中止id