ResourceBundle类读取properties文件

Posted 57容杰龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ResourceBundle类读取properties文件相关的知识,希望对你有一定的参考价值。

1.Properties与ResourceBundle类都可以读取属性文件key/value的键值对

2.ResourceBundle类主要用来解决国际化和本地化问题,国际化时properties文件命名规范:

  一般的命名规范是: 自定义名语言代码国别代码.properties,如果是默认的,直接写为:自定义名.properties。

  例如:

  res_en_US.properties 
  res_zh_CN.properties                                       res.properties

  系统会自动选择属性资源文件

3.使用:

  ResourceBundle bundle = ResourceBundle.getBundle("res", new Locale("zh", "CN"));

  new Locale(“zh”, “CN”)提供本地化信息

  程序会首先在classpath下寻找res_zh_CN.properties文件,若res_zh_CN.properties文件不存在,则取找res_zh.properties,如还是不存在,继续寻找res.properties,若都找不到就抛出异常。

  • 获取ResourceBundle实例bundle 后可以通过下面的方法获得本地化值。
  • getObject(String key);
  • getString(String key);
  • getStringArray(String key);

 如:bundle = ResourceBundle.getBundle("res", Locale.US);

  bundle = ResourceBundle.getBundle("res", Locale.getDefault());

  value= bundle.getString("key");

注意:ResourceBundle.getBundle("xxx", Locale.US);

  ResourceBundle类基于类读取属性文件:将属性文件当作类,意味着属性文件必须放在包中(或src根目录下),使用属性文件的全限定性类名而非路径指代属性文件。

  ResourceBundle bundle = ResourceBundle.getBundle("com.rong.res.application");此时读取的是com.rong.res包下的application.properties属性文件

以上是关于ResourceBundle类读取properties文件的主要内容,如果未能解决你的问题,请参考以下文章

ResourceBundle类:读取配置文件

简单工厂模式使用ResourceBundle读取.properties配置文件

属性文件操作之Properties与ResourceBundle

如何从 ResourceBundle 切换到 Properties(类)?

ResourceBundle读取properties配置文件

ResourceBundle 同时从 2 个 Properties 文件中读取