0


【uniapp】存储数据到本地文件以及读取本地文件数据

  可能存在的问题:

            1、高版本的安卓系统可能在文件系统中看不到文件但是可以读取

            2、该方法在安卓10系统中可能会有问题

一、读取本地文件

        // 读取本地文件的方法 参数1为文件名称,参数2为回调方法用于处理获取到的文件数据
        fetchFileData(fileName,callback) {
            plus.io.requestFileSystem(
                plus.io.PUBLIC_DOWNLOADS, // 文件系统中的根目录
                fs => {
                    // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
                    fs.root.getFile(fileName, {
                        create: true // 文件不存在则创建
                    }, fileEntry => {
                        // 文件在手机中的路径
                        console.log('文件在手机中的路径', fileEntry.fullPath)
                        fileEntry.file(function(file) {
                            var fileReader = new plus.io.FileReader();
                            console.log("getFile:" + JSON.stringify(file));
                            fileReader.readAsText(file, "utf-8")
                            fileReader.onloadend = function(res) { //读取文件内容成功后的回调事件
                                //res.target.result读取到的文件内容信息
                                console.log('最后读取文件内容是=======', res.target.result)
                                callback(res.target.result)
                            }
                        });
                    }, e => {
                        console.log('报错111', "getFile failed: " + e.message);
                    });
                },

                e => {
                    console.log('报错222', e.message);
                }
            );
        },

二、存储数据到本地文件

// 参数1为文件名称 参数2是文件内容 参数3是回调参数        
saveFile(fileName,fileInfo,callback) {
            // 请求本地文件系统对象
            plus.io.requestFileSystem(
                plus.io.PUBLIC_DOWNLOADS, // 文件系统中的根目录
                fs => {
                    // 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
                    fs.root.getFile(fileName, {
                        create: true // 文件不存在则创建
                    }, fileEntry => {
                        // 文件在手机中的路径
                        console.log('最后文件在手机中的路径========', fileEntry.fullPath)
                        fileEntry.createWriter(writer => {
                            // 写入文件成功完成的回调函数
                            writer.onwrite = e => {
                                console.log("写入数据成功");
                                callback(true)
                            };
                            // 写入数据
                            writer.write(JSON.stringify(fileInfo));
                        })
                    }, e => {
                        callback(false)
                        console.log('报错111', "getFile failed: " + e.message);
                    });
                },
                e => {
                    console.log('报错222', e.message);
                    callback(false)
                }
            );
        },

本文转载自: https://blog.csdn.net/weixin_44435242/article/details/128143830
版权归原作者 糖糖糖小雅 所有, 如有侵权,请联系我们删除。

“【uniapp】存储数据到本地文件以及读取本地文件数据”的评论:

还没有评论