• UNI-APP apk使用io流进行文件操作


    一、manifest.json中增加权限

    1. "android.permission.WRITE_SETTINGS\"/>",
    2. "android.permission.WRITE_EXTERNAL_STORAGE\"/>",
    3. "android.permission.READ_EXTERNAL_STORAGE\"/>"
    1. "app-plus" : {
    2. "permissions": {
    3. "plus": {
    4. "description": "访问系统文件",
    5. "features": ["io"]
    6. }
    7. },
    8. }

    二、获取app目录下的文件进行读取

    方式一:

    1. //读取到app下的_doc下的目录 然后取到sqlists.json文件 没有create:true这个则是创建
    2. plus.io.resolveLocalFileSystemURL("_doc/",(entry)=> {
    3. entry.getFile("sqlists.json",{create:true,exclusive:false},function(file){
    4. const fileReader = new plus.io.FileReader()
    5. fileReader.readAsText(file, 'utf-8')
    6. console.log(file.fullPath)
    7. fileReader.onloadend = (evt) => {
    8. console.log(JSON.parse(evt.target.result))
    9. _this.dataList = JSON.parse(evt.target.result).createTable
    10. _this.insertTable = JSON.parse(evt.target.result).insertTable
    11. console.log(JSON.parse(evt.target.result))
    12. console.log(_this.insertTable)
    13. // 调用其他方法进行数据操作
    14. _this.createTable()
    15. }
    16. //
    17. })
    18. }, (err) => {
    19. console.log("发生了错误", err)
    20. })

     方式二:

    1. //app安卓的情况 在这个位置的目录 然后取到sqlists.json文件 然后同样的道理进行读取
    2. plus.io.resolveLocalFileSystemURL("/storage/emulated/0/Android/data/uni.demo.test/apps/__UNI__8D07247/doc/sqlists.json", (entry) => {
    3. entry.file((file) => {
    4. const fileReader = new plus.io.FileReader()
    5. fileReader.readAsText(file, 'utf-8')
    6. console.log(file.fullPath)
    7. fileReader.onloadend = (evt) => {
    8. console.log(JSON.parse(evt.target.result))
    9. _this.dataList = JSON.parse(evt.target.result).createTable
    10. _this.insertTable = JSON.parse(evt.target.result).insertTable
    11. console.log(JSON.parse(evt.target.result))
    12. console.log(_this.insertTable)
    13. // 调用其他方法进行数据操作
    14. _this.createTable()
    15. }
    16. //
    17. })
    18. }, (err) => {
    19. console.log("发生了错误", err)
    20. })

    三、uni-app app 拷贝初始文件

    1. plus.io.resolveLocalFileSystemURL('_www/static/_db/init.db',function(entry){
    2. plus.io.resolveLocalFileSystemURL("_doc",function(root){
    3. entry.copyTo(root ,'test.db' ,function(){
    4. console.log("拷贝成功");
    5. },function(){
    6. console.log("拷贝失败");
    7. })
    8. })
    9. });

    四、这是json文件

    1. {
    2. "createTable": [
    3. "CREATE TABLE if not exists \"app_dept\" (\"id\" INTEGER PRIMARY KEY AUTOINCREMENT ,\"pid\" INTEGER ,\"dept_name\" TEXT ,\"dept_brief_name\" TEXT,\"dept_type\" TEXT)",
    4. "CREATE TABLE if not exists \"app_org_user\" (\"user_id\" INTEGER PRIMARY KEY AUTOINCREMENT ,\"dept_id\" INTEGER ,\"user_name\" TEXT ,\"sex\" TEXT ,\"birthday\" TEXT ,\"img\" TEXT,\"mz\" TEXT ,\"native_place\" TEXT ,\"birth_place\" TEXT ,\"join_party_time\" TEXT ,\"start_work\" TEXT ,\"health_status\" TEXT ,\"technical_position\" TEXT ,\"speciality\" TEXT,\"full_time_edu\" TEXT,\"full_time_degree\" TEXT,\"full_time_school\" TEXT,\"full_time_yuan\" TEXT,\"full_time_major\" TEXT,\"job_time_edu\" TEXT,\"job_time_degree\" TEXT,\"job_time_school\" TEXT,\"job_time_yuan\" TEXT,\"job_time_major\" TEXT,\"user_level\" TEXT,\"now_posts\" TEXT,\"resumes\" TEXT,\"familys\" TEXT,\"ext01\" TEXT,\"ext02\" TEXT,\"ext03\" TEXT,\"ext04\" TEXT,\"ext05\" TEXT)",
    5. "CREATE TABLE if not exists \"app_org_user_post\" (\"id\" INTEGER PRIMARY KEY AUTOINCREMENT ,\"user_id\" INTEGER ,\"user_name\" TEXT ,\"post_dept_name\" TEXT,\"jobs_work\" TEXT,\"re_start_time\" TEXT,\"test_time\" TEXT,\"end_time\" TEXT ,\"real_end_time\" TEXT ,\"job_status\" TEXT ,\"reasons\" TEXT ,\"create_time\" TEXT )",
    6. "CREATE TABLE if not exists \"app_org_user_resumes\" (\"id\" INTEGER PRIMARY KEY AUTOINCREMENT ,\"user_id\" INTEGER ,\"user_name\" TEXT ,\"title\" TEXT,\"start_time\" TEXT,\"end_time\" TEXT,\"create_time\" TEXT)",
    7. ],
    8. "insertTable": [
    9. "insert OR REPLACE INTO 'app_dept' (id,pid,dept_name,dept_brief_name,dept_type) values(\"311\",\"0\",\"山河大学\",\"山河大学\",\"0\")",
    10. "insert OR REPLACE INTO 'app_dept' (id,pid,dept_name,dept_brief_name,dept_type) values(\"439\",\"311\",\"领导班子\",\"院领导\",\"0\")",
    11. "insert OR REPLACE INTO 'app_dept' (id,pid,dept_name,dept_brief_name,dept_type) values(\"440\",\"311\",\"党政办公室\",\"党政办公室\",\"0\")",
    12. "insert OR REPLACE INTO 'app_dept' (id,pid,dept_name,dept_brief_name,dept_type) values(\"442\",\"311\",\"党委组织部 机关党总支 党校\",\"党委组织部 机关党总支 党校\",\"0\")",
    13. ]
    14. }

  • 相关阅读:
    剑指 Offer 61. 扑克牌中的顺子
    自定义映射resultMap
    多元函数的微分法
    容器化部署,不能识别中文件夹和中文文件
    【kafka】Timed out waiting for a node assignment
    交换机端口安全实验
    C++中的多态(下)
    String类 --- 上篇
    143、锐捷交换机恢复出厂和各种基本配置
    无涯教程-JavaScript - ASINH函数
  • 原文地址:https://blog.csdn.net/qq_42717015/article/details/134048891