export default { // type: 本地文件系统常量,取值如下 // 应用私有资源目录,对应常量plus.io.PRIVATE_WWW,仅应用自身可读 // 应用私有文档目录,对应常量plus.io.PRIVATE_DOC,仅应用自身可读写 // 应用公共文档目录,对应常量plus.io.PUBLIC_DOCUMENTS,多应用时都可读写,常用于保存应用间共享文件 // 应用公共下载目录,对应常量plus.io.PUBLIC_DOWNLOADS,多应用时都可读写,常用于保存下载文件 write(path, data, type=plus.io.PRIVATE_DOC) { console.log('[write]', path, data); return new Promise((resolve, reject) => { try { plus.io.requestFileSystem( type, fs => { // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象 fs.root.getFile( path, { create: true // 文件不存在则创建 }, fileEntry => { // 文件在手机中的路径 console.log('[write] fileEntry.fullPath', fileEntry.fullPath) fileEntry.createWriter(writer => { // 向文件中写入数据 writer.write(data); // 文件写入成功完成的回调函数 writer.onwrite = res => { console.log('[write] 写入成功', res); resolve(res) }; // 文件写入操作失败时调用的回调函数 writer.onerror = err => { console.log('[write] 写入失败', err); reject(err) }; }, err => { console.log('[write] createWriter failed: ' + err); reject(err) }); }, err => { console.log('[write] getFile failed: ' + err); reject(err) } ); }, err => { console.log('[write] requestFileSystem failed: ', err); reject(err) } ); } catch(err) { console.error('[write] catch err', err) } }) }, read(path, type=plus.io.PRIVATE_DOC) { let that = this; return new Promise((resolve, reject) => { plus.io.requestFileSystem( type, fs => { fs.root.getFile( path, { create: false }, fileEntry => { fileEntry.file(function(file) { console.log('[read] 文件大小:' + file.size + ' 文件名:' + file.name, file); //创建读取文件对象 let fileReader = new plus.io.FileReader(); //以文本格式读取文件数据内容 fileReader.readAsText(file, 'utf-8'); //读取文件成功完成的回调函数 fileReader.onload = function(res) { console.log("[read] 文件读取操作完成", res); resolve(res.target.result) }; //文件读取操作失败时调用的回调函数 fileReader.onerror = function(err) { console.log("[read] 文件读取操作失败", err); reject(err) }; }); }, err => { console.log('[read] getFile failed: ', err) reject(err) } ); }, err => { console.log('[read] requestFileSystem failed: ', err); reject(err); } ); }) } }