模块  java.base
软件包  java.util

Class 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可以从InputStreamReader ,它代表属性文件。 InputStream构造PropertyResourceBundle实例要求输入流在UTF-8编码。 默认情况下,如果在读取输入流时发生MalformedInputExceptionUnmappableCharacterException ,则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
    另请参见:
    ResourceBundleListResourceBundleProperties
    • 构造方法详细信息

      • PropertyResourceBundle

        public PropertyResourceBundle​(InputStream stream)
                               throws IOException
        InputStream创建属性资源包。 默认情况下,此构造函数以UTF-8读取属性文件。 如果在读取输入流时发生MalformedInputExceptionUnmappableCharacterException ,则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字节序列。