模块 java.base
 java.util

类 PropertyResourceBundle

java.lang.Object
java.util.ResourceBundle
java.util.PropertyResourceBundle

public class PropertyResourceBundle extends ResourceBundle
PropertyResourceBundleResourceBundle 的具体子类,它使用属性文件中的一组静态字符串管理locale的资源。有关资源包的更多信息,请参阅 ResourceBundle

与其他类型的资源包不同,您不继承 PropertyResourceBundle 。相反,您提供包含资源数据的属性文件。 ResourceBundle.getBundle 将自动寻找合适的属性文件并创建一个引用它的 PropertyResourceBundle。有关搜索和实例化策略的完整描述,请参阅 ResourceBundle.getBundle

以下 例子 显示了具有基本名称“MyResources”的资源包系列的成员。文本定义了包“MyResources_de”,包家族的德国成员。该成员基于 PropertyResourceBundle ,因此文本是文件“MyResources_de.properties”的内容(相关的 例子 显示了如何将捆绑包添加到该系列,这些捆绑包作为 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 注意:
PropertyResourceBundle 可以从 InputStreamReader 构造,它们表示属性文件。从 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 Escapes 表示,如第 3.3 节中所定义Java 语言规范而另一个采用 Reader 的构造函数则没有该限制。此系统属性将忽略其他编码值。系统属性在初始化此类时被读取和评估。更改或删除属性在初始化后无效。
实现要求:
如果 PropertyResourceBundle 子类的实现被多个线程同时使用,则它必须是线程安全的。此类中非抽象方法的默认实现是线程安全的。
自从:
1.1
参见:
  • 构造方法详细信息

    • 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。
      指定者:
      handleGetObject 在类 ResourceBundle
      参数:
      key - 所需对象的键
      返回:
      给定键的对象,或 null
    • getKeys

      public Enumeration <String > getKeys()
      返回此 ResourceBundle 及其父包中包含的键的 Enumeration
      指定者:
      getKeys 在类 ResourceBundle
      返回:
      ResourceBundle 及其父包中包含的密钥的 Enumeration
      参见:
    • handleKeySet

      protected Set <String > handleKeySet()
      返回此 ResourceBundle 中包含的 only 键的 Set
      重写:
      handleKeySet 在类 ResourceBundle
      返回:
      一个 Set 的键只包含在这个 ResourceBundle
      自从:
      1.6
      参见: