Module  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字节序列。
    • 方法详细信息

      • handleGetObject

        public Object handleGetObject​(String key)
        描述从类复制: ResourceBundle
        从此资源包获取给定键的对象。 如果此资源束不包含给定键的对象,则返回null。
        Specified by:
        handleGetObjectResourceBundle
        参数
        key - 所需对象的关键
        结果
        给定键的对象,或null