android java properties文件_Android使用Properties保存易变常量

功能目的

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

实现过程

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

3340bbdc4819

image.png

2)创建properties文件

在创建好的assets目录下创建我们需要的properties文件

例子中properties中名字:my.properties

3)properties书写规范

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

3340bbdc4819

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代码获取的整体的流程执行完毕了

下面看下执行结果

3340bbdc4819

image.png

发现问题

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

3340bbdc4819

image.png

再次执行,查看结果如下

3340bbdc4819

image.png

总结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值