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

简介: 原文:http://jerrysun.blog.51cto.com/745955/804789 废话不说,直接上代码。    读取.properties文件中的配置:  String strValue = "";  Properties props = new Properties();  try {      props.

原文: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

 

 

目录
相关文章
|
3月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
5月前
|
XML API Android开发
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
本文介绍了如何使用androidx.preference库快速创建具有一级和二级菜单的Android设置界面的步骤和示例代码。
155 1
码农之重学安卓:利用androidx.preference 快速创建一、二级设置菜单(demo)
|
5月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
373 1
|
3月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
186 0
|
4月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
336 3
|
5月前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
187 1
|
5月前
|
Java 网络安全 开发工具
UNITY与安卓⭐一、Android Studio初始设置
UNITY与安卓⭐一、Android Studio初始设置
|
6月前
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
158 12
|
4月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
163 0
|
5月前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
158 0