• 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     }
  • 相关阅读:
    git rebase 还是 merge的使用场景最通俗的解释
    漏洞复现:Struts2 远程代码执行漏洞(S2-033)
    linux临时网络配置
    漏洞复现:Struts2 S2-032 漏洞环境
    XXE攻击学习
    启用了不安全的HTTP方法【转】
    HTTP参数污染【转】
    逻辑漏洞挖掘方式
    大漏洞时代下的僵尸网络追踪-笔记
    markdown入门杂记
  • 原文地址:https://www.cnblogs.com/CharlesGrant/p/4747055.html
Copyright © 2020-2023  润新知