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
ConstructorDescriptionPropertyResourceBundle
(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
- 参见:
-