Android使用Properties保存易变常量

功能目的

将app需要将代码中经常改动的常量,以Properties的方式放到assets目录下,在修改常量时,将不需要改动代码,直接修改配置Properties文件即可.

实现过程

1) 在项目的app/src/main/下如图创建assets目录
image.png

2)创建properties文件

在创建好的assets目录下创建我们需要的properties文件
例子中properties中名字:my.properties

3)properties书写规范

my.properties中内容为我们需要保存的会经常变动的常量,以Key=Value的形式书写,多常量,以换行分隔,如图:
image.png

4)获取properties文件的Java代码

Properties properties = new Properties();
try {
      properties.load(getAssets().open("my.properties"));
      Log.e("mengqi","hello:" + properties.getProperty("hello"));
      Log.e("mengqi","hi   :" + properties.getProperty("hi"));
} catch (IOException e) {
      e.printStackTrace();
}

其中Properties为java.util包下的系统类,可以直接使用,调用load接口,使用InputStream作为参数,
参数为从assets目录下读取文件(过程是获取AssetManager实例load进my.properties文件,获取InputStream),获取InputStream对象,
执行完毕,Properties实例加载成功.通过实例方法getProperty(key),获取key对应的value值.

如此这般,通过将经常变动的常量写入Properties后,再通过Java代码获取的整体的流程执行完毕了

下面看下执行结果

image.png

发现问题
在Properties中出现的中文,获取后为乱码,首先偿试有没有替换getProerty(key)接口的其它接口,发现没有,创建Properties实例的构造方法有没有,也没有发现与编码相关的构造方法.最后还是google/百度,找到了解决变法.将下图中的transparent native-to-ascii conversion勾选(大致意思是透明的(对开发者而言吧)将本地编码转换成ascii码)

image.png

再次执行,查看结果如下

image.png

总结

这只是一种方式将经常变动的常量从代码中提取出来的方式,还有其它方法实现,感觉还算是简单.过程相对简单,注意下value为中文的情况,使用起来,还是很方便的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,713评论 0 17
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,052评论 6 342
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 剑主笑道:“我早就达到宇宙神二层,又修行漫长岁月,觉得有十足把握在‘毁灭道’上压圣主一头,才真正爆发抢夺源世界的部...
    im喵小姐阅读 1,508评论 0 0