【转】Android下使用Properties文件保存程序设置

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

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

  1. String strValue = "";
  2. Properties props = new Properties();
  3. try {
  4. props.load(context.openFileInput("config.properties"));
  5. strValue = props.getProperty (keyName);
  6. System.out.println(keyName + " "+strValue);
  7. }
  8. catch (FileNotFoundException e) {
  9. Log.e(LOG_TAG, "config.properties Not Found Exception",e);
  10. }
  11. catch (IOException e) {
  12. Log.e(LOG_TAG, "config.properties IO Exception",e);
  13. }

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

向.properties文件中写入配置:

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

上面这段代码,跟读取的代码相比,多了一个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

上一篇:我把一些Linux的中英文命令做了对应翻译大家参考一下


下一篇:oracle 通过同义词建立视图