用HTML5+ IO读取文件时,为什么当读取的文件状态为2(文件读取完成)时,onload和onloadend方法都不运行了呢?读取文件的流程又是怎样的?也是异步吗?请求高手帮我解决疑惑,谢谢!

我不是风
- 发布:2016-08-19 09:38
- 更新:2016-08-19 14:04
- 阅读:1994

我不是风 (作者)
//向手机中写入数据
function save () {
//文件名
var fileName = "ajxx-" new Date().getTime() ".json";
//封装暂存数据
var obj = new getAjxx(fileName);
//将数据放于缓存中
var list = [];
list.push(obj);
//将数据存于手机存储卡上
plus.io.requestFileSystem( plus.io.PUBLIC_DOCUMENTS, function( fs ) {
// 可通过fs操作PUBLIC_DOCUMENTS文件系统 ,通过fs.root获取DirectoryEntry对象进行操作
var files = fs.root;
// fs.root是根目录操作对象DirectoryEntry
fs.root.getFile(fileName,{create:true}, function(fileEntry){
fileEntry.createWriter( function ( writer ) {
//定位文件操作位置,有效值为0到文件的总长度减1。 0表示文件的起始位置
writer.seek( writer.length-1 );
//向文件中写内容
writer.write(JSON.stringify(list));
//暂存成功
mui.alert("暂存成功");
mui.back();
}, function ( e ) {
alert( e.message );
});
});
}, function ( e ) {
alert( "Request file system failed: " e.message );
});
}
//创建对象
function getAjxx(fileName){
var zcsj = getCurrDate();
//封装数据
this.fileName = fileName; //存放文件名,备删除时使用
this.zcsj = "2016-08-19 13:05:08"; //暂存时间,用户在列表中展示,当上报时并不会传到后台
this.wtdlName = "测试数据1";
this.wtxlName = "测试数据2";
//所属街道
this.ssjdmc = "测试数据0";
}
//从手机中读取数据
function getData () {
//将数据存于本地sd卡上
plus.io.requestFileSystem( plus.io.PUBLIC_DOCUMENTS, function( fs ) {
// 可通过fs操作PUBLIC_DOCUMENTS文件系统 ,通过fs.root获取DirectoryEntry对象进行操作
var files = fs.root;
// 创建读取目录信息对象 得到该文件夹下的所有文件
var directoryReader = fs.root.createReader();
directoryReader.readEntries( function( entries ){
//如果该文件夹下没有文件则提示没有更多数据,否则读入文件内容
for(var i=0; i < entries.length; i ) {
// fs.root是根目录操作对象DirectoryEntry
fs.root.getFile(entries[i].name,{create:false}, function(fileEntry){
fileEntry.file( function(file){
var fileReader = new plus.io.FileReader();
fileReader.readAsText(file, 'utf-8');
console.info("读取后返回状态:" fileReader.readyState "返回结果**" fileReader.result);
//当读取文件的状态fileReader.readyState=2(完成时),fileReader.onloadend没执行,但数据得到了
if (null != fileReader.result
我不是风 (作者)
代码在下面有粘过来,数据最好是4、5条左右,辛苦您了!
2016-08-19 13:56