Android Properties 存储
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 存储相关推荐
- Android数据存储之GreenDao 3.0 详解
前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...
- Android数据存储——2.文件存储_B_资源文件
今天学习Android数据存储--文件存储_资源文件 把资源文件mybook.txt放入项目目录下的res资源文件夹下的raw文件夹下(没有则新建),PS:mybook.txt存为UTF-8编码. X ...
- 【错误记录】Android 分区存储 错误 ( 文件格式不匹配 )
文章目录 一.报错信息 二.解决方案 一.报错信息 Android 分区存储 , 将 图片文件 保存到 Movies 目录下报错 : 2021-05-18 14:31:50.691 1341-5448 ...
- Android数据存储——2.文件存储_C_DOM解析XML文档
今天学习Android数据存储--文件存储_DOM解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效 ...
- < Android数据存储> 任务二 应用程序数据文件夹里的文件读写
:zh]Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法 ...
- 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,
Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法用于打开 ...
- Android内部存储与外部存储解析
Android开发的过程中.经常会涉及到存储,之前一直没有一个整体的概念,这篇文章就是进行一个知识点的梳理. Android的存储有:内部存储.外部存储. 想要了解这两个概念,我们先将开发软件中的DD ...
- android数据存储心得,android学习心得 轻量级存储SharePreferences
SharedPreferences是Android中存储简单数据的一个工具类.可以想象它是一个小小的Cookie,它通过用键值对的方式把简单数据类型(boolean.int.float.long和St ...
- Android 开发 存储目录的详解
Android 开发 存储目录的详解 简介 Android设备,有3个地方的文件存储位置,他们分别是: 内部存储空间(用户无法浏览到此目录) 外部存储空间(就是手机自身的文件管理目录,用户可以浏览) ...
最新文章
- 多个线程为了同个资源打起架来了,该如何让他们安分?
- android studio运行时报错the selected device is incompatible
- 从EEG中解码想象的3D手臂运动轨迹以控制两个虚拟手臂
- python在读写文件之前需要创建文件对象-python读取或写入文件
- 深入理解计算机系统(3.2)---数据格式、访问信息以及操作数指示符
- 用url传值,如何传多个值
- 6套制造业大数据解决方案免费送,内含详细步骤手把手教会你
- LiveVideoStackCon讲师热身分享 ( 二 ) —— 中美互动直播比较
- 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
- android底层设置相机帧率,Android Camera previewFrame 提高 fps
- 如何运行vue项目 ?(详解,建议收藏) ❤️
- 电脑仙人掌机器人作文_暑假有空来练笔——2019各地小学期末作文题目集锦
- web的标准网页设计与php课后,第3章web标准与html
- 现代通信原理14.2:M进制数字调制信号波形的向量表示
- c语言实验集成环境软件,TurboC for Windows集成实验与学习环境
- McAfee杀毒软件中的提权漏洞
- 矩阵连乘问题算法思想_动态规划之矩阵连乘问题
- python数据分析 - 卡方检验
- blender建模制作课堂笔记
- Bomb Game(题目地址链接:https://acs.jxnu.edu.cn/problem/NOIOPJCH02011661)
热门文章
- 修改Linux内核参数提高服务器并发能力
- Travis CI : 最小的分布式系统(二)
- 加班到凌晨三点,就能月薪五万了吗?
- mac软件全屏时候最顶上任务栏保留,MAC能不能做一个把程序放在顶部菜单栏的功能...
- 大学生如何合理使用计算机,大学生计算机合理使用引导分析
- 山东大学计算机学院预推免,山东大学计算机科学与技术学院(专业学位)计算机技术保研...
- mysql update 并发 慢_MySQL跑在CentOS 6 和 7上的性能比较
- Java学习总结:24
- 1 23 456c语言,2014年计算机二级考试C语言模拟题(1)
- Java项目:嘟嘟二手书商城系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)