1.初始化

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

2.存储

 /**
* 持久化 * @param channel
* @param app
* @return
*/
public static boolean persistent(int channel, int app){
props.setProperty(KEY_CHANNEL, String.valueOf(channel));
props.setProperty(KEY_APP, String.valueOf(app));
FileOutputStream fos = null;
try{
fos = new FileOutputStream(Constants.PROGRESS_PROPERTIES);
props.store(fos, null);
return true;
}catch(Exception e){
return false;
}finally{
if(fos != null){
try
{
fos.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}

3.获取持久化值

 /**
* 获取属性值
* @param key
* @return
*/
private static int getValue(String key){
try{
if(props == null){
initProperties();
}
return Integer.parseInt(props.getProperty(key));
}catch(Exception e){
e.printStackTrace();
}
return -1;
} /**
* 获取属性值
* @param key
* @return
*/
private static String getValueForStr(String key){
try{
if(props == null){
initProperties();
}
return props.getProperty(key);
}catch(Exception e){
e.printStackTrace();
}
return "-1";
}

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

 /**
* 获取配置文件中的value
* @param url 路径
* @param param 参数
* @param getFlag 访问标识 0:SD , 1 Assets
* @return
*/
public String getValue(String url, String param, int getFlag) {
String result = null;
switch(getFlag){
case 0:
result = getProperties(url).getProperty(param);
break;
case 1:
result = getPropertiesByAssets(url).getProperty(param);
break;
} try {
if (fis != null) {
fis.close();
}
if(in != null){
in.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return result == null ? "" : result;
}

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

 /**
* 加载属性
* @param props
*/
private static void loadProgress(Properties props, String file){
FileInputStream fis = null;
try{
fis = new FileInputStream(file);
props.load(fis); if(props.get(KEY_CHANNEL) == null){
props.setProperty(KEY_CHANNEL, String.valueOf(-1));
}
if(props.get(KEY_APP) == null){
props.setProperty(KEY_APP, String.valueOf(-1));
} }catch(Exception e){
e.printStackTrace();
}finally{
if(fis != null){
try
{
fis.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}

Android Properties 存储的更多相关文章

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

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

  2. Android数据存储方式--SharedPreferences

    Android数据存储方式有如下四种:SharedPreferences.存储到文件.SQLite数据库.内容提供者(Content provider).存储到网络服务器. 本文主要介绍一下Share ...

  3. Android数据存储:File

    Android数据存储之File Files:它通过FileInputStream和FileOuputStream对文件进行操作.但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写 ...

  4. Android数据存储之Android 6.0运行时权限下文件存储的思考

    前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以 ...

  5. Android数据存储之SQLCipher数据库加密

    前言: 最近研究了Android Sqlite数据库(文章地址:Android数据存储之Sqlite的介绍及使用)以及ContentProvider程序间数据共享(Android探索之ContentP ...

  6. Android SharedPreferences存储

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/Android_SharedPreferences.html 一 概念 SharedPreferen ...

  7. Android 媒体存储服务(二)

    Android 媒体存储服务 简介: 本文是<深入Android媒体存储服务>系列第二篇,简要介绍媒体存储服务扫描文件的流程.文中介绍的是 Android 4.2. Android 有一套 ...

  8. Android 媒体存储服务(一)

    Android 媒体存储服务 本文介绍如何在 Android 中,开发者的 APP 如何使用媒体存储服务(包含MediaScanner.MediaProvider以及媒体信息解析等部分),包括如何把 ...

  9. android 数据存储Ⅱ

    本章继续讲解在Android开发中,数据的存储与管理.涉及知识点:SQLite,SwipeRefreshLayout控件刷新. 1.功能需求 练习使用SQLite 做一个登录界面,数据库字段包含用户名 ...

随机推荐

  1. php 注册审核

    注册界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  2. sqlserver 用户、账号、安全等问题小汇

    一.孤立账号 SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个S ...

  3. UVA11542 Square(高斯消元 异或方程组)

    建立方程组消元,结果为2 ^(自由变元的个数) - 1 采用高斯消元求矩阵的秩 方法一: #include<cstdio> #include<iostream> #includ ...

  4. php调用phpqrcode.php生成二维码

    下载phpqrcode.php 下载地址: http://files.cnblogs.com/files/qhorse/phpqrcode.rar qrcode.php文件: <?php inc ...

  5. Ubuntu14.04LTS系统输入法的安装

    由于安装的时候选择的是英文版,所以一进入系统问题就来了:无法输入中文. 我记得自己直接选的输入法是pinyin那个 在网上看到别人到blog,直接转过来吧,只为自己收藏下,如有需要请联系原作者. 转载 ...

  6. Java Socket编程(转)

    Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...

  7. [Liferay6.2]Connect to ajax.googleapis.com …… timed out

    启动liferay 6.2 tomcat之后,后台会报一大段的异常信息,主要异常信息如下: -- :: org.apache.shindig.gadgets.http.BasicHttpFetcher ...

  8. AChartEngine使用View显示图表

    学习过AChartEngine的人肯定都知道,使用ChartFactory创建一张图表可以使用Intent方法,之后调用StartActivity来启用这个Intent,但是这么左右一个坏处,就是当你 ...

  9. Null值的使用

  10. Loadrunner参数化连接oracle、mysql数据源报错及解决办法

    Loadrunner参数化连接oracle.mysql数据源报错及解决办法 (本人系统是Win7 64,  两位小伙伴因为是默认安装lr,安装在 最终参数化的时候,出现连接字符串无法自动加载出来: 最 ...