【转】在android程序中使用配置文件properties

在android程序中使用配置文件来管理一些程序的配置信息其实非常简单

在这里我们主要就是用到Properties这个类
直接给函数给大家 这个都挺好理解的

  1. 读写函数分别如下:
  2. //读取配置文件 
  3. public Properties loadConfig(Context context, String file) {
  4. Properties properties = new Properties();
  5. try {
  6. FileInputStream s = new FileInputStream(file);
  7. properties.load(s);
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. return null;
  11. }
  12. return properties;
  13. }
  14. //保存配置文件
  15. public boolean saveConfig(Context context, String file, Properties properties) {
  16. try {
  17. File fil=new File(file);
  18. if(!fil.exists())
  19. fil.createNewFile();
  20. FileOutputStream s = new FileOutputStream(fil);
  21. properties.store(s, "");
  22. } catch (Exception e) {
  23. e.printStackTrace();
  24. return false;
  25. }
  26. return true;
  27. }

复制代码

这两个函数与Android一点关系都没有嘛。。
所以它们一样可以在其他标准的java程序中被使用
在Android中,比起用纯字符串读写并自行解析,或是用xml来保存配置,
Properties显得更简单和直观,因为自行解析需要大量代码,而xml的操作又远不及Properties方便

贴一段测试的代码

  1. private Properties prop;
  2. public void TestProp(){
  3. boolean b=false;
  4. String s="";
  5. int i=0;
  6. prop=loadConfig(context,"/mnt/sdcard/config.properties");
  7. if(prop==null){
  8. //配置文件不存在的时候创建配置文件 初始化配置信息
  9. prop=new Properties();
  10. prop.put("bool", "yes");
  11. prop.put("string", "aaaaaaaaaaaaaaaa");
  12. prop.put("int", "110");//也可以添加基本类型数据 get时就需要强制转换成封装类型
  13. saveConfig(context,"/mnt/sdcard/config.properties",prop);
  14. }
  15. prop.put("bool", "no");//put方法可以直接修改配置信息,不会重复添加
  16. b=(((String)prop.get("bool")).equals("yes"))?true:false;//get出来的都是Object对象 如果是基本类型 需要用到封装类
  17. s=(String)prop.get("string");
  18. i=Integer.parseInt((String)prop.get("int"));
  19. saveConfig(context,"/mnt/sdcard/config.properties",prop);
  20. }

复制代码

也可以用Context的openFileInput和openFileOutput方法来读写文件
此时文件将被保存在 /data/data/package_name/files下,并交由系统统一管理
用此方法读写文件时,不能为文件指定具体路径

时间: 2024-09-20 04:13:41

【转】在android程序中使用配置文件properties的相关文章

在android程序中打开HPROF文件时出错

问题描述 在android程序中打开HPROF文件时出错 当我用Memory Analyzer打开HPROF文件时(由Debug.dumpHprofData创建),得到的是以下的异常: java.io.IOException: Unknown HPROF Version (JAVA PROFILE 1.0.3) at org.eclipse.mat.hprof.AbstractParser.readVersion(AbstractParser.java:124) at org.eclipse.m

在android程序中处理来电

问题描述 在android程序中处理来电 我想在android平台上处理来电.我想设定一个时间期限, 如果手机接收到电话时,就会自动的发给来电用户一个信息. 如何设置? 解决方案 你需要在 Activity 或者 Service中申明 PhoneStateListener: PhoneStateListener phoneStateListener = new PhoneStateListener() { @Override public void onCallStateChanged(int

Android程序中读取使用已有的SQLite数据库

方法一: 先在 Manifest 里添加权限: <span style="font-size:12px;"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /&

如何在用qt写的android程序中添加.lib?

问题描述 如何在用qt写的android程序中添加.lib? 如何在用qt写的android程序中添加.lib?同一样的程序运行desktop版的就可以,但运行android版时就说找不到-lzlib-lSDLmain-llibcurl_imp 等等.

怎么在android程序中使用service中的call isms程序发短信

问题描述 怎么在android程序中使用service中的call isms程序发短信 怎么在android程序中使用service中的call isms程序发短信,最好能有个简单的demo.主要是上层怎么调用这个service以及怎么实现发短信 解决方案 service call isms 是 adb命令,可以在adb shell命令行下执行.http://www.cnblogs.com/eustoma/archive/2012/04/27/2473351.html

[Android 调试] chrome 调试android 程序中的 webview

问题描述 [Android 调试] chrome 调试android 程序中的 webview RT,pc chrome版本 44.0.2369.0 m ,调试手机中的 chrome 程序没有问题,调试自己应用中的webview时,chrome://inspect/#devices 页面正常,也能看到我的html,点击inspect 时,空白窗口一闪而过,多点击几次 出现 "Cannot load DevTools frontend from an untrusted origin?remote

代码-如何在Android程序中加入视频和音乐

问题描述 如何在Android程序中加入视频和音乐 怎么在Eclipse 开发android程序中加入音乐和视频 代码怎么写? 点击Button 跳转播放 解决方案 http://www.linuxidc.com/Linux/2012-05/61284.htm 这个网页上有播放视频,音乐的代码 解决方案二: 谷歌一下, 会有很多你喜欢的东东的.

pdf-在 android 程序中不能打开PDF

问题描述 在 android 程序中不能打开PDF 我在程序中创建了一个可扩展的列表,当我点击一个 child 时我想打开一个PDF.现在 PDF 不能打开,显示一个信息说程序中的内容找不到.打开 PDF 的代码是: public boolean onChildClick ( ExpandableListView parent View v int groupPosition int childPosition long id) { Log.d( LOG_TAGonChildClick: "&q

android开发-在android程序中在acitvity继承的重载函数外定义的语句

问题描述 在android程序中在acitvity继承的重载函数外定义的语句 请问如果在非重载函数外定义的函数,在哪个函数之后被执行? 比如在一个activity里有onCreate, onstart函数,如果在这些函数外面声明了函数或者语句,会在什么时候执行? 我会上机试一试.来验证你们的答案~~谢谢哈 解决方案 你不调用它怎么执行啊.... 还有好像语句必须在方法里面...