java.lang.Object
java.util.ResourceBundle
java.util.PropertyResourceBundle
PropertyResourceBundle 是 ResourceBundle 的一个具体子类,它使用来自属性文件的一组静态字符串来管理某个区域的资源。有关资源包的更多信息,请参阅 ResourceBundle。
与其他类型的资源包不同,您不需要对 PropertyResourceBundle 进行子类化。相反,您提供包含资源数据的属性文件。 ResourceBundle.getBundle 将自动查找适当的属性文件并创建一个引用它的 PropertyResourceBundle。请参阅 ResourceBundle.getBundle 以获取有关搜索和实例化策略的完整描述。
以下示例显示了一个资源包系列的成员,基本名称为"MyResources"。文本定义了包" MyResources_de",即该系列的德语成员。此成员基于 PropertyResourceBundle,因此文本是文件"MyResources_de.properties"的内容(相关的示例显示了如何将作为 ListResourceBundle 子类实现的包添加到此系列中)。此示例中的键的形式为"s1"等。实际键完全取决于您的选择,只要它们与您在程序中用于从包中检索对象的键相同即可。键区分大小写。
# MessageFormat 模式
s1=Die Platte \"{1}\" enthält {0}.
# 模式中 {0} 的位置
s2=1
# 示例磁盘名称
s3=Meine Platte
# 第一个 ChoiceFormat 选择
s4=keine Dateien
# 第二个 ChoiceFormat 选择
s5=eine Datei
# 第三个 ChoiceFormat 选择
s6={0,number} Dateien
# 示例日期
s7=3. März 1996
- API 注意:
-
PropertyResourceBundle可以从InputStream或Reader构造,表示一个属性文件。从InputStream构造PropertyResourceBundle实例需要输入流以UTF-8编码。默认情况下,如果在读取输入流时发生MalformedInputException或UnmappableCharacterException,则PropertyResourceBundle实例将重置为异常之前的状态,重新以ISO-8859-1读取输入流,并继续读取。如果系统属性java.util.PropertyResourceBundle.encoding设置为 "ISO-8859-1" 或 "UTF-8",则输入流仅以该编码读取,并在遇到无效序列时抛出异常。如果指定了 "ISO-8859-1",则不能用 ISO-8859-1 编码表示的字符必须用《Java 语言规范》第 3.3 节中定义的 Unicode 转义来表示,而另一个接受Reader的构造函数则没有此限制。对于此系统属性,其他编码值将被忽略。在初始化此类时读取和评估系统属性。更改或删除属性在初始化后不起作用。 - 实现要求:
-
如果一个
PropertyResourceBundle子类同时被多个线程使用,则其实现必须是线程安全的。此类中非抽象方法的默认实现是线程安全的。 - 自 JDK 版本:
- 1.1
- 参见:
-
Nested Class Summary
Nested classes/interfaces declared in class java.util.ResourceBundle
ResourceBundle.Control -
Field Summary
Fields declared in class java.util.ResourceBundle
parent -
Constructor Summary
ConstructorsConstructorDescriptionPropertyResourceBundle(InputStream stream) 从InputStream创建属性资源包。PropertyResourceBundle(Reader reader) 从Reader创建属性资源包。 -
Method Summary
Modifier and TypeMethodDescriptiongetKeys()返回包含在此ResourceBundle及其父包中的键的Enumeration。handleGetObject(String key) 从此资源包获取给定键的对象。返回仅包含在此ResourceBundle中的键的Set。Methods declared in class java.util.ResourceBundle
clearCache, clearCache, containsKey, getBaseBundleName, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, keySet, setParent
-
Constructor Details
-
PropertyResourceBundle
从InputStream创建属性资源包。此构造函数默认以 UTF-8 读取属性文件。如果在读取输入流时发生MalformedInputException或UnmappableCharacterException,则 PropertyResourceBundle 实例将重置为异常之前的状态,重新以ISO-8859-1读取输入流并继续读取。如果系统属性java.util.PropertyResourceBundle.encoding设置为 "ISO-8859-1" 或 "UTF-8",则输入流仅以该编码读取,并在遇到无效序列时抛出异常。其他编码值对此系统属性无效。在初始化此类时读取和评估系统属性。更改或删除属性在初始化后不起作用。- 参数:
-
stream- 表示要从中读取的属性文件的 InputStream。 - 抛出:
-
IOException- 如果发生 I/O 错误 -
NullPointerException- 如果stream为 null -
IllegalArgumentException- 如果stream包含格式错误的 Unicode 转义序列。 -
MalformedInputException- 如果系统属性java.util.PropertyResourceBundle.encoding设置为 "UTF-8",并且stream包含无效的 UTF-8 字节序列。 -
UnmappableCharacterException- 如果系统属性java.util.PropertyResourceBundle.encoding设置为 "UTF-8",并且stream包含无法映射的 UTF-8 字节序列。
-
PropertyResourceBundle
从Reader创建属性资源包。与构造函数PropertyResourceBundle(InputStream)不同,对输入属性文件的编码没有限制。- 参数:
-
reader- 表示要从中读取的属性文件的 Reader。 - 抛出:
-
IOException- 如果发生 I/O 错误 -
NullPointerException- 如果reader为 null -
IllegalArgumentException- 如果从reader中出现格式错误的 Unicode 转义序列。 - 自 JDK 版本:
- 1.6
-
-
Method Details
-
handleGetObject
从类中复制的描述:ResourceBundle从此资源包获取给定键的对象。如果此资源包不包含给定键的对象,则返回 null。- 指定者:
-
handleGetObject在类ResourceBundle中 - 参数:
-
key- 所需对象的键 - 返回:
- 给定键的对象,或 null
-
getKeys
返回包含在此ResourceBundle及其父包中的键的Enumeration。- 指定者:
-
getKeys在类ResourceBundle中 - 返回:
-
包含在此
ResourceBundle及其父包中的键的Enumeration。 - 参见:
-
handleKeySet
返回仅包含在此ResourceBundle中的键的Set。- 覆盖:
-
handleKeySet在类ResourceBundle中 - 返回:
-
仅包含在此
ResourceBundle中的键的Set - 自 JDK 版本:
- 1.6
- 参见:
-