fileStorage.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. export class FileStorage {
  2. constructor() {
  3. }
  4. storage(addr, data) {
  5. plus.io.requestFileSystem(
  6. plus.io.PRIVATE_DOC, // 程序私有文档目录常量
  7. fs => {
  8. // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
  9. fs.root.getFile(
  10. addr, {
  11. create: true // 文件不存在则创建
  12. },
  13. fileEntry => {
  14. // 文件在手机中的路径
  15. fileEntry.createWriter(writer => {
  16. // 写入文件成功完成的回调函数
  17. writer.onwrite = e => {
  18. console.log('写入成功');
  19. };
  20. // 向文件中写入数据
  21. writer.write(
  22. JSON.stringify(data)
  23. );
  24. });
  25. },
  26. e => {
  27. console.log('getFile failed: ' + JSON.stringify(e));
  28. }
  29. );
  30. },
  31. e => {
  32. console.log(e.message);
  33. }
  34. );
  35. }
  36. read(addr) {
  37. let that = this;
  38. return new Promise((resolve, reject) => {
  39. plus.io.requestFileSystem(
  40. plus.io.PRIVATE_DOC,
  41. fs => {
  42. fs.root.getFile(
  43. addr, {
  44. create: false
  45. },
  46. fileEntry => {
  47. fileEntry.file(function (file) {
  48. // console.log('文件大小:' + file.size + '-- 文件名:' + file.name);
  49. //创建读取文件对象
  50. let fileReader = new plus.io.FileReader();
  51. //以文本格式读取文件数据内容
  52. fileReader.readAsText(file, 'utf-8');
  53. //文件读取操作完成时的回调函数
  54. fileReader.onloadend = function (evt) {
  55. let result = evt.target.result ? JSON.parse(evt.target.result) : {}
  56. resolve(result)
  57. };
  58. });
  59. },
  60. e => {
  61. reject(e)
  62. console.log(e)
  63. }
  64. );
  65. },
  66. e => {
  67. reject(e);
  68. console.log(e.message);
  69. }
  70. );
  71. })
  72. }
  73. }