1.初始化

 1 private static void initProperties(){
 2         File logFile = new File(Constants.PROGRESS_PROPERTIES);
 3         props = new Properties();
 4         if(!logFile.exists()){
 5             //创建并初始化配置文件
 6             FileUtils.createFolder(Constants.BASEPATH + "Config");// 先创建文件夹
 7             RootUtil.execAsRoot("echo \"\" > " + Constants.PROGRESS_PROPERTIES, "chmod 666 " + Constants.PROGRESS_PROPERTIES);
 8             persistent(-1, -1, -1, -1, "-1", "-1" , 0, 0, "-1", "-1", 0, 0, "-1", "-1", "-1", "-1", "-1", "-1");
 9         }else{
10             loadProgress(props, Constants.PROGRESS_PROPERTIES);
11         }
12     }

2.存储

 1 /**
 2      * 持久化 4      * @param channel
 5      * @param app
 6      * @return
 7      */
 8     public static boolean persistent(int channel, int app){
14         19         props.setProperty(KEY_CHANNEL, String.valueOf(channel));
20         props.setProperty(KEY_APP, String.valueOf(app));36
37         FileOutputStream fos = null;
38         try{
39             fos = new FileOutputStream(Constants.PROGRESS_PROPERTIES);
40             props.store(fos, null);
41             return true;
42         }catch(Exception e){
43             return false;
44         }finally{
45             if(fos != null){
46                 try
47                 {
48                     fos.close();
49                 }
50                 catch(Exception e){
51                     e.printStackTrace();
52                 }
53             }
54         }
55     }

3.获取持久化值

 1 /**
 2      * 获取属性值
 3      * @param key
 4      * @return
 5      */
 6     private static int getValue(String key){
 7         try{
 8             if(props == null){
 9                 initProperties();
10             }
11             return Integer.parseInt(props.getProperty(key));
12         }catch(Exception e){
13             e.printStackTrace();
14         }
15         return -1;
16     }
17
18     /**
19      * 获取属性值
20      * @param key
21      * @return
22      */
23     private static String getValueForStr(String key){
24         try{
25             if(props == null){
26                 initProperties();
27             }
28             return props.getProperty(key);
29         }catch(Exception e){
30             e.printStackTrace();
31         }
32         return "-1";
33     }

其中包含获取assets文件夹目录下的配置文件:

 1 /**
 2      * 获取配置文件中的value
 3      * @param url 路径
 4      * @param param 参数
 5      * @param getFlag 访问标识  0:SD , 1 Assets
 6      * @return
 7      */
 8     public String getValue(String url, String param, int getFlag) {
 9         String result = null;
10         switch(getFlag){
11             case 0:
12                 result = getProperties(url).getProperty(param);
13                 break;
14             case 1:
15                 result = getPropertiesByAssets(url).getProperty(param);
16                 break;
17         }
18
19         try {
20             if (fis != null) {
21                 fis.close();
22             }
23             if(in != null){
24                 in.close();
25             }
26         } catch (Exception e) {
27             e.printStackTrace();
28         }
29         return result == null ? "" : result;
30     }

4.当初始化好的文件,重新加载。

 1 /**
 2      * 加载属性
 3      * @param props
 4      */
 5     private static void loadProgress(Properties props, String file){
 6         FileInputStream fis = null;
 7         try{
 8             fis = new FileInputStream(file);
 9             props.load(fis);13             if(props.get(KEY_CHANNEL) == null){
14                 props.setProperty(KEY_CHANNEL, String.valueOf(-1));
15             }
16             if(props.get(KEY_APP) == null){
17                 props.setProperty(KEY_APP, String.valueOf(-1));
18             }64         }catch(Exception e){
65             e.printStackTrace();
66         }finally{
67             if(fis != null){
68                 try
69                 {
70                     fis.close();
71                 }
72                 catch(Exception e){
73                     e.printStackTrace();
74                 }
75             }
76         }
77     }

Android Properties 存储相关推荐

  1. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  2. Android数据存储——2.文件存储_B_资源文件

    今天学习Android数据存储--文件存储_资源文件 把资源文件mybook.txt放入项目目录下的res资源文件夹下的raw文件夹下(没有则新建),PS:mybook.txt存为UTF-8编码. X ...

  3. 【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Android 分区存储 , 将 图片文件 保存到 Movies 目录下报错 : 2021-05-18 14:31:50.691 1341-5448 ...

  4. Android数据存储——2.文件存储_C_DOM解析XML文档

    今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...

  5. < Android数据存储> 任务二 应用程序数据文件夹里的文件读写

    :zh]Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法 ...

  6. 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,

    Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法用于打开 ...

  7. Android内部存储与外部存储解析

    Android开发的过程中.经常会涉及到存储,之前一直没有一个整体的概念,这篇文章就是进行一个知识点的梳理. Android的存储有:内部存储.外部存储. 想要了解这两个概念,我们先将开发软件中的DD ...

  8. android数据存储心得,android学习心得 轻量级存储SharePreferences

    SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和St ...

  9. Android 开发 存储目录的详解

    Android 开发 存储目录的详解 简介 Android设备,有3个地方的文件存储位置,他们分别是: 内部存储空间(用户无法浏览到此目录) 外部存储空间(就是手机自身的文件管理目录,用户可以浏览) ...

最新文章

  1. 多个线程为了同个资源打起架来了,该如何让他们安分?
  2. android studio运行时报错the selected device is incompatible
  3. 从EEG中解码想象的3D手臂运动轨迹以控制两个虚拟手臂
  4. python在读写文件之前需要创建文件对象-python读取或写入文件
  5. 深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符
  6. 用url传值,如何传多个值
  7. 6套制造业大数据解决方案免费送,内含详细步骤手把手教会你
  8. LiveVideoStackCon讲师热身分享 ( 二 ) —— 中美互动直播比较
  9. 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
  10. android底层设置相机帧率,Android Camera previewFrame 提高 fps
  11. 如何运行vue项目 ?(详解,建议收藏) ❤️
  12. 电脑仙人掌机器人作文_暑假有空来练笔——2019各地小学期末作文题目集锦
  13. web的标准网页设计与php课后,第3章web标准与html
  14. 现代通信原理14.2:M进制数字调制信号波形的向量表示
  15. c语言实验集成环境软件,TurboC for Windows集成实验与学习环境
  16. McAfee杀毒软件中的提权漏洞
  17. 矩阵连乘问题算法思想_动态规划之矩阵连乘问题
  18. python数据分析 - 卡方检验
  19. blender建模制作课堂笔记
  20. Bomb Game(题目地址链接:https://acs.jxnu.edu.cn/problem/NOIOPJCH02011661)

热门文章

  1. 修改Linux内核参数提高服务器并发能力
  2. Travis CI : 最小的分布式系统(二)
  3. 加班到凌晨三点,就能月薪五万了吗?
  4. mac软件全屏时候最顶上任务栏保留,MAC能不能做一个把程序放在顶部菜单栏的功能...
  5. 大学生如何合理使用计算机,大学生计算机合理使用引导分析
  6. 山东大学计算机学院预推免,山东大学计算机科学与技术学院(专业学位)计算机技术保研...
  7. mysql update 并发 慢_MySQL跑在CentOS 6 和 7上的性能比较
  8. Java学习总结:24
  9. 1 23 456c语言,2014年计算机二级考试C语言模拟题(1)
  10. Java项目:嘟嘟二手书商城系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)