属性与资源包

我读了关于属性和资源包。 但是我无法区分这些。 何时使用属性文件以及何时使用资源包。

要加载属性文件,请使用以下代码

Properties tempProp = new Properties(); FileInputStream propsFile = new FileInputStream(xyz.properties); tempProp.load(propsFile); 

加载资源包

 ResourceBundle labels = ResourceBundle.getBundle("xyz", currentLocale); Enumeration bundleKeys = labels.getKeys(); 

在这两种情况下(在资源包和Properites中),我们正在使用属性文件。 我发现的一个区别是,要存储应用程序特定的数据,我们使用属性文件,并使用国际化的数据,我们使用资源包。 我不知道我是否正确。

我想知道上面两个的用法。 这两者有什么区别?

是的,你正在考虑正确的方向。

资源包不必使用属性文件 – 这只是一个实现( PropertyResourceBundle )。 一个属性文件实际上只是一个string到string的映射 – 这可以用于国际化,但不一定是。

ResourceBundle为你提供了一个一致的方式来为特定的语言环境请求合适的对象(通常是一个string),并且有后备(fallback)等function。对于每种语言,这通常都是由一个单独的属性文件支持的,但并不总是支持的。

所以是的:如果你正在处理i18n,你应该使用ResourceBundle ; 如果你只需要在文本文件中保存一个string到string的映射,那么可以直接使用Properties

ResourceBundle有助于加载特定于语言环境的属性。 如果每个语言环境都有不同的属性文件,例如DE,CN等,ResourceBundle将加载适当的语言环境特定文件。