ResourceBundle直接继承自java.lang.Object,但是Properties则继承自Hashtable<K,V>

对于ResourceBundle,其作用是国际化,他的国际化文件也是.properties文件,只不过不用Properties类解析,而是用的ResourceBundle类来解析而已。这个被ResourceBundle解析的.properties文件必须有命名规范: basename_语言代码_国家码.properties.

如果有myres_en_US.properties和myres_zh_CN.properties 2个文件,那么在中文操作系统之下会优先使用myres_zh_CN.properties,否则就用默认的.properties文件。默认的文件是只没有提供语言,地区的资源文件,比如myres.properties.

关于resource bundle 资源的编码,这个必须是iso-8859-1编码,(不可以是utf-8编码)所以对于非西方语系,必须用JDK的自带工具native2ascii转换。

ResourceBundle文件是只读的。不像.properties文件可以读写。

在Eclipse中开发国际化,强烈推荐PropertiesEditor插件。

 

---

对于Properties类

语法还是老规矩,key-value对,注释用#,换行用 

属性对可以没有value,但是不可以没有key.

Properties类不一定只能解析.properties文件,他还可以解析xml文件。