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     }
posted @ 2015-08-21 10:15  晕菜一员  阅读(864)  评论(0编辑  收藏  举报