属性与资源包

Sun*_*hoo 51 java

我读到了有关属性和资源包的内容.但我无法区分这些.何时使用Properties文件以及何时使用Resource bundle.

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

Properties tempProp = new Properties();
FileInputStream propsFile = new FileInputStream(xyz.properties);
tempProp.load(propsFile);
Run Code Online (Sandbox Code Playgroud)

加载资源包

ResourceBundle labels =
    ResourceBundle.getBundle("xyz", currentLocale);
Enumeration bundleKeys = labels.getKeys();
Run Code Online (Sandbox Code Playgroud)

在这两种情况下(在资源包和Properites中)我们都使用属性文件.我发现的一个区别是,为了存储我们使用属性文件的应用程序特定数据,并使用i18n数据,我们使用资源包.我不知道我是对的.

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

Jon*_*eet 43

是的,你在思考正确的方向.

资源束不具有使用属性文件-它只是一种实现(PropertyResourceBundle).属性文件实际上只是一个字符串到字符串的映射 - 可以用于i18n,但不一定是.

ResourceBundle 为您提供一种为特定区域设置请求适当对象(通常是字符串)的一致方法,具有回退等.这通常(但不总是)由每种语言的单独属性文件支持.

所以是的:如果你正在处理i18n,你应该使用ResourceBundle; 如果您只需要在文本文件中保留字符串到字符串的映射,则可以Properties直接使用.


小智 7

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