- java.lang.Object
-
- java.util.ResourceBundle
-
- java.util.PropertyResourceBundle
-
public class PropertyResourceBundle extends ResourceBundle
PropertyResourceBundle
是的具体子类ResourceBundle
管理资源使用一组属性文件中的静态字符串的语言环境。 有关资源束的更多信息,请参阅ResourceBundle
。与其他类型的资源束不同,您不需要
PropertyResourceBundle
。 而是提供包含资源数据的属性文件。ResourceBundle.getBundle
会自动查找相应的属性文件,并创建一个引用它的PropertyResourceBundle
。 有关搜索和实例化策略的完整说明,请参阅ResourceBundle.getBundle
。以下example显示基本名称为“MyResources”的资源束系列的成员。 该文本定义了捆绑包系列的德语成员“MyResources_de”捆绑包。 该成员基于
PropertyResourceBundle
,因此该文本是“MyResources_de.properties”文件的内容(相关的example显示了如何向该系列添加捆绑包,实现为ListResourceBundle
子类)。 此示例中的键的格式为“s1”等。实际的键完全取决于您的选择,只要它们与您在程序中使用的键相同即可从包中检索对象。 密钥区分大小写。# MessageFormat pattern s1=Die Platte \"{1}\" enthält {0}. # location of {0} in pattern s2=1 # sample disk name s3=Meine Platte # first ChoiceFormat choice s4=keine Dateien # second ChoiceFormat choice s5=eine Datei # third ChoiceFormat choice s6={0,number} Dateien # sample date s7=3. März 1996
- API Note:
-
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编码表示的字符必须由Unicode转义如在The Java™ Language Specification第3.3节中定义,而其他的构造,这需要表示Reader
没有该限制。 此系统属性将忽略其他编码值。 在初始化此类时读取和评估系统属性。 更改或删除属性在初始化后不起作用。 - 实现要求:
-
PropertyResourceBundle
子类的实现必须是线程安全的,如果它同时被多个线程使用。 该类中非抽象方法的默认实现是线程安全的。 - 从以下版本开始:
- 1.1
- 另请参见:
-
ResourceBundle
,ListResourceBundle
,Properties
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class java.util.ResourceBundle
ResourceBundle.Control
-
-
Field Summary
-
Fields inherited from class java.util.ResourceBundle
parent
-
-
构造方法摘要
构造方法 Constructor 描述 PropertyResourceBundle(InputStream stream)
从InputStream
创建属性资源包。PropertyResourceBundle(Reader reader)
从Reader
创建属性资源包。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 Enumeration<String>
getKeys()
返回一个Enumeration
包含在此按键ResourceBundle
及其父包。Object
handleGetObject(String key)
从此资源包获取给定键的对象。protected Set<String>
handleKeySet()
返回一个Set
的键 只包含在这个ResourceBundle
。-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class java.util.ResourceBundle
clearCache, clearCache, containsKey, getBaseBundleName, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, keySet, setParent
-
-
-
-
构造方法详细信息
-
PropertyResourceBundle
public PropertyResourceBundle(InputStream stream) throws IOException
从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
为空 -
IllegalArgumentException
- 如果stream
包含格式不正确的Unicode转义序列。 -
MalformedInputException
- 如果系统属性java.util.PropertyResourceBundle.encoding
设置为“UTF-8”,并且stream
包含无效的UTF-8字节序列。 -
UnmappableCharacterException
- 如果系统属性java.util.PropertyResourceBundle.encoding
设置为“UTF-8”,并且stream
包含不可映射的UTF-8字节序列。
-
PropertyResourceBundle
public PropertyResourceBundle(Reader reader) throws IOException
从Reader
创建属性资源包。 与构造函数PropertyResourceBundle(InputStream)
不同,对输入属性文件的编码没有限制。- 参数
-
reader
- 表示要读取的属性文件的Reader。 - 异常
-
IOException
- 如果发生I / O错误 -
NullPointerException
- 如果reader
为空 -
IllegalArgumentException
- 如果从reader
出现格式错误的Unicode转义序列。 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
handleGetObject
public Object handleGetObject(String key)
描述从类复制:ResourceBundle
从此资源包获取给定键的对象。 如果此资源束不包含给定键的对象,则返回null。- Specified by:
-
handleGetObject
在ResourceBundle
- 参数
-
key
- 所需对象的关键 - 结果
- 给定键的对象,或null
-
getKeys
public Enumeration<String> getKeys()
返回一个Enumeration
包含在此按键ResourceBundle
及其父包。- Specified by:
-
getKeys
在ResourceBundle
- 结果
-
该
ResourceBundle
及其父级包含的密钥中包含Enumeration
个密钥。 - 另请参见:
-
ResourceBundle.keySet()
-
handleKeySet
protected Set<String> handleKeySet()
返回一个Set
的键 只包含在这个ResourceBundle
。- 重写:
-
handleKeySet
在ResourceBundle
- 结果
-
一个
Set
的键只包含在这个ResourceBundle
- 从以下版本开始:
- 1.6
- 另请参见:
-
ResourceBundle.keySet()
-
-