【转】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. catch (FileNotFoundException e) { 
  8.     Log.e(LOG_TAG, "config.properties Not Found Exception",e); 
  9. catch (IOException e) { 
  10.     Log.e(LOG_TAG, "config.properties IO Exception",e); 

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

    向.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. catch (FileNotFoundException e) { 
  19.     Log.e(LOG_TAG, "config.properties Not Found Exception",e); 
  20. catch (IOException e) { 
  21.     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

 

 

时间: 2024-09-20 19:43:11

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

Android动态修改src目录下的Properties文件如何做?

问题描述 Android动态修改src目录下的Properties文件如何做? 解决方案 http://wenku.baidu.com/link?url=IXMKvhkrBs8_wj_uY27b3BYf_0fqCWm-XwXpwDAvNgMDkByJiw7j2nZOfSWcnmI2XlGdokvfD5zVXjhYKiyToHzfl4YxzgHDXlvOsjHXV9i(java修改properties文件)希望对你帮助!

java访问.properties文件示例程序

今天给大家整理一份java访问资源文件 访问的文件类型为.properties文件 思路详解: 使用流将读取.properties文件并封装到Properties对象当中.并根据Properties对象当中的getProperty()方法获取值,括号中的参数为值名.  代码如下 复制代码 import java.io.FileInputStream;    import java.io.FileOutputStream;    import java.util.Properties;      

Win7系统下禁止计算机文件加密的设置方法

  1.首先点击计算机桌面左下角,选择"运行",在打开的运行界面中输入"secpol.msc",点击"确定"按钮. 2.在打开的"本地安全策略"窗口中,单击"公钥策略",然后在右侧的"对象类型"中选择"加密文件系统"右键单击,选择其中的"属性"项. 3.在出现的"加密文件系统 属性"窗口中选择"常规"标签,在

Android破解之Lic文件加密程序(首例)

我不会写Android,这是我第一个破解Android的例子,耗时接近一天,希望大神不要见笑! 本程序为商业软件,不便发布APK程序. 不要给我发消息,我不得回,有问题,直接回帖就可以了. 准备工作 在开始之前,要进行以下准备工作: (1)安装JDK,至于版本,自己选择吧,目前我是用JDK1.6版,可以去官网下载安装,并进行环境配置: (2)安装模拟器,APK软件要运行测试,需要环境,模拟器是个好东西,我用的是海马玩模拟器,不知道行不行: (3)APK编辑器下载,现在我还是工具党,只能依靠工具,

Win7系统下鼠标打开文件夹方式设置

我们通常在使用Win7时,都是通过双击来打开文件夹的,不过对于一些比较懒的用户来说,这种打开方式太麻烦了,能不能单击打开文件夹呢?其实是可以的,下面就是具体的设置方法啦. 设置方法: 1.首先双击打开计算机,然后点击左上角的"组织"按钮,在菜单中选择"文件夹和搜索选项"; 2.然后在打开的界面中,在"打开项目的方式"选项卡中,点选单选按钮即可设置单击或双击打开项目,然后点击确定按钮退出即可.   如果你觉得双击打开文件夹太过于麻烦,那么就可以使用

java-android上传的文件保存在哪个文件夹下我的服务器Tomcat

问题描述 android上传的文件保存在哪个文件夹下我的服务器Tomcat android上传的文件保存在哪个文件夹下我的服务器端是Tomcat+eclipse 保存完后怎么获取文件所在的路径,我要进行下载 解决方案 保存文件的Servlet不是你自己写的吗?路径这些不都是你自己配置给定的 解决方案二: 你上传tomvcat等配置文件中应该要指定的,查看一下配置信息的设置. 解决方案三: 一般上传的文件是保存在硬盘上的,保存在哪是你自己指定的,比如说你上传的图片保存在D:Image下. 下载文件

【黑马Android】(02)短信发送器/布局演示/android下单位/android下Junit/保存数据/android下权限/xml解析和序列化

短信发送器 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.smssender" android:versionCode="1" android:versionName=&quo

C#实现的列出目录下所有子目录和文件的程序(附思路)

程序 把自己的资料刻录成很多光盘,发现连自己都很难找到需要的文件在哪张光盘上,因此我就根据需求,在Visual Studio.NET中写了一个列出目录下所有子目录和文件的程序,以方便我列出刻录的资料光盘上的所有文件信息. 本程序的主要算法是递归,主函数如下: //递归列出目录下的所有文件和子目录 public void ListFiles( FileSystemInfo fileinfo ) { if( ! fileinfo.Exists ) return; DirectoryInfo diri

android下sqlite的blob类型不能存储超过2兆的文件

问题描述 android下sqlite的blob类型不能存储超过2兆的文件 android下sqlite的blob类型不能存储超过2兆的文件,存储1M多的文件都没问题, 超过两兆程序马上就崩溃,大家是否发现了这个情况. 解决方案 sqlite本来就是轻量级的数据库,数据库就是小数据类的存储,不然存图片,存文件 那就应该叫服务器了 解决方案二: 我有一个建议,你把图片分块存储,不要整个存入blob,取出的时候做个拼接 解决方案三: 把文件或者图片存储在文件系统中,sqlite中只存储文件的目录