今天在开发的时候,需要把一些信息放到配置文件中,方便后续的修改,注意到用的是ResourceBundle读取配置文件的方式,记得之前也见过使用Properties的方式,就比较好奇这两种方式的区别,网上查了一下和查了一下Java API手册,简单总结记录一下:
ResourceBundle和Properties的一个主要区别就是ResourceBundle支持语言国际化,当程序需要特定于语言环境的对象时,它使用 getBundle
方法加载 ResourceBundle
类:
Locale locale = new Locale("zh", "CN"); String value = ResourceBundle.getBundle("Resources",locale).getString("key");
使用以上的方式读取k-v的键值对,而Properties继承Hashtable,采用流的方式加载,如下:
Properties Prop = new Properties(); Prop.load(MyClass.class.getClassLoader().getResourceAsStream( "Resources.properties")); String value = (String) Prop.getProperty("key");
正常的需求以上两种方式实现都可以,使用的时候注意catch exception.