ANDROID下使用PROPERTIES文件保存程序设置

ANDROID下使用PROPERTIES文件保存程序设置

Posted on  2016-04-19 10:40  TongMeng 阅读( 2040) 评论( 0)  编辑  收藏

原文:http://jerrysun.blog.51cto.com/745955/804789

 

废话不说,直接上代码。
    读取.properties文件中的配置: 

 

复制代码
String strValue = ""; 
Properties props = new Properties(); 
try { 
    props.load(context.openFileInput("config.properties")); 
    strValue = props.getProperty (keyName); 
    System.out.println(keyName + " "+strValue); 
} 
catch (FileNotFoundException e) { 
    Log.e(LOG_TAG, "config.properties Not Found Exception",e); 
} 
catch (IOException e) { 
    Log.e(LOG_TAG, "config.properties IO Exception",e); 
} 
复制代码

 

    相信上面这段代码大部分朋友都能看懂,所以就不做过多的解释了。

    向.properties文件中写入配置:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Properties props =  new  Properties();
try  {
     props.load(context.openFileInput( "config.properties" ));
     OutputStream out = context.openFileOutput( "config.properties" ,Context.MODE_PRIVATE);
     Enumeration e = props.propertyNames();
     if (e.hasMoreElements()){
         while  (e.hasMoreElements()) {
             String s = (String) e.nextElement();
             if  (!s.equals(keyName)) {
                 props.setProperty(s, props.getProperty(s));
             }
         }
     }
     props.setProperty(keyName, keyValue);
     props.store(out,  null );
     String value = props.getProperty(keyName);
     System.out.println(keyName +  " " +value);
}
catch  (FileNotFoundException e) {
     Log.e(LOG_TAG,  "config.properties Not Found Exception" ,e);
}
catch  (IOException e) {
     Log.e(LOG_TAG,  "config.properties IO Exception" ,e);
}

  

    上面这段代码,跟读取的代码相比,多了一个if判断以及一个while循环。主要是因为Context.Mode造成的。因为我的工程涉及到多个配置信息。所以只能是先将所有的配置信息读取出来,然后在写入配置文件中。
    Context.Mode的含义如下:
    1.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容。
    2.MODE_APPEND:代表该文件是私有数据,只能被应用本身访问,该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
    3.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
    4.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

    注:.properties文件放置的路径为/data/data/packagename/files

你可能感兴趣的:(ANDROID下使用PROPERTIES文件保存程序设置)