reader.md
ngui/reader
这里提供的方法可以针对不协议的uri路径进行基本的读取操作
现在支持的路径类型:
http://
orhttps://
- 可使用同步或异步方式进行读取,但不能读取目录或测试存在,readdirSync()
返回空数组而isFileSync()
永远返回false
。
file://
本地文件路径。/var/data
orvar/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