java resourcebundle properties_工作积累(二)——使用java.util.ResourceBundle和java.util.Properties实现常量功能...

在 Java 中我们往往通过定义常量来使用一些值,方便我们进行修改配置,如:public classConstant {

public static final String IMG_ORI_PATH = “ori/”;

public static final String IMG_THUMB_PATH = “thumb/”;

……

}

这样我们在其他类中可以直接使用 Constant.IMG_ORI_PATH 来代替 “ori/” ,使用 Constant.IMG_THUMB_PATH 来代替 “thumb/”,等等。一旦这些路径发生改变,只需要修改 Constant 类,其他类不受影响,相信绝大多数开发人员对这一点很熟悉。然而,如果现在项目已经上线,还需要重新编译该类为.class 文件,相对来说时间成本比较大,而通过java.util.ResourceBundle 或 java.util.Properties 两个类,我们可以大大减小这一时间成本。

ResourceBundle 通常用于针对不同的语言,即国际化来使用,只能针对.properties 文件,当然在这里我们不讨论国际化,只是用它来实现 Properties 的功能。如果程序中的属性文件只是一些配置,并不是针对多国语言,那么也可以使用 Properties ,该类可以针对 .properties .xml.txt 等各种类型的文件。

1. ResourceBundle:

在项目的src/main/resources 目录下,创建一个自定义的 systemconfig.properties 文件。.properties 文件中的内容为 key-value 型,我们可以在其中添加如下值:

img.ori.path=ori/

img.thumb.path=thumb/

之后使用 ResourceBundle 来取值:ResouceBundle resourceBundle = ResourceBundle.getBundle(“systemconfig”);

String oriPath = resourceBundle.getString(“img.ori.path”);

String thumbPath = resourceBundle.getString(“img.thumb.path”);

2. Properties:

同样,在项目的src/main/resources 目录下,创建一个自定义的 systemconfig.txt文件,文件内容与上面的systemconfig.properties 相同,之后使用 Properties 来取值:Properties properties = new Properties();

FileInputStream fileInputStream = new FileInputStream(Thread.currentThread().getContextClassLoader().getResource(“systemconfig.txt”).getPath());

properties.load(fileInputStream);

String oriPath = properties.getProperty(“img.ori.path”);

String thumbPath = properties.getProperty(“img.thumb.path”);

当然,这里的systemconfig.txt 可以放在系统中的任何位置,只要在 new FileInputStream() 中明确文件路径即可。

通过以上两种方法,在路径发生变化时,我们只需要修改配置文件,无需重新编译.class 文件,节约的时间可以喝杯咖啡啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值