Class PropertyResourceBundle

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

public classPropertyResourceBundleextendsResourceBundle
PropertyResourceBundle is a concrete subclass ofResourceBundle that manages resources for a locale using a set of static strings from a property file. SeeResourceBundle for more information about resource bundles.

Unlike other types of resource bundle, you don't subclassPropertyResourceBundle. Instead, you supply properties files containing the resource data.ResourceBundle.getBundle will automatically look for the appropriate properties file and create aPropertyResourceBundle that refers to it. SeeResourceBundle.getBundle for a complete description of the search and instantiation strategy.

The followingexample shows a member of a resource bundle family with the base name "MyResources". The text defines the bundle "MyResources_de", the German member of the bundle family. This member is based onPropertyResourceBundle, and the text therefore is the content of the file "MyResources_de.properties" (a relatedexample shows how you can add bundles to this family that are implemented as subclasses ofListResourceBundle). The keys in this example are of the form "s1" etc. The actual keys are entirely up to your choice, so long as they are the same as the keys you use in your program to retrieve the objects from the bundle. Keys are case-sensitive.

    # 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 can be constructed either from anInputStream or aReader, which represents a property file. Constructing aPropertyResourceBundle instance from anInputStream requires that the input stream be encoded inUTF-8. By default, if aMalformedInputException or anUnmappableCharacterException occurs on reading the input stream, then thePropertyResourceBundle instance resets to the state before the exception, re-reads the input stream inISO-8859-1, and continues reading. If the system propertyjava.util.PropertyResourceBundle.encoding is set to either "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding, and throws the exception if it encounters an invalid sequence. If "ISO-8859-1" is specified, characters that cannot be represented in ISO-8859-1 encoding must be represented by Unicode Escapes as defined in section3.3 ofThe Java Language Specification whereas the other constructor which takes aReader does not have that limitation. Other encoding values are ignored for this system property. The system property is read and evaluated when initializing this class. Changing or removing the property has no effect after the initialization.
Implementation Requirements:
The implementation of aPropertyResourceBundle subclass must be thread-safe if it's simultaneously used by multiple threads. The default implementations of the non-abstract methods in this class are thread-safe.
Since:
1.1
See Also:
  • Constructor Details

    • PropertyResourceBundle

      public PropertyResourceBundle(InputStream stream) throwsIOException
      Creates a property resource bundle from anInputStream. This constructor reads the property file in UTF-8 by default. If aMalformedInputException or anUnmappableCharacterException occurs on reading the input stream, then the PropertyResourceBundle instance resets to the state before the exception, re-reads the input stream inISO-8859-1 and continues reading. If the system propertyjava.util.PropertyResourceBundle.encoding is set to either "ISO-8859-1" or "UTF-8", the input stream is solely read in that encoding, and throws the exception if it encounters an invalid sequence. Other encoding values are ignored for this system property. The system property is read and evaluated when initializing this class. Changing or removing the property has no effect after the initialization.
      Parameters:
      stream - an InputStream that represents a property file to read from.
      Throws:
      IOException - if an I/O error occurs
      NullPointerException - ifstream is null
      IllegalArgumentException - ifstream contains a malformed Unicode escape sequence.
      MalformedInputException - if the system propertyjava.util.PropertyResourceBundle.encoding is set to "UTF-8" andstream contains an invalid UTF-8 byte sequence.
      UnmappableCharacterException - if the system propertyjava.util.PropertyResourceBundle.encoding is set to "UTF-8" andstream contains an unmappable UTF-8 byte sequence.
    • PropertyResourceBundle

      public PropertyResourceBundle(Reader reader) throwsIOException
      Creates a property resource bundle from aReader. Unlike the constructorPropertyResourceBundle(InputStream), there is no limitation as to the encoding of the input property file.
      Parameters:
      reader - a Reader that represents a property file to read from.
      Throws:
      IOException - if an I/O error occurs
      NullPointerException - ifreader is null
      IllegalArgumentException - if a malformed Unicode escape sequence appears fromreader.
      Since:
      1.6
  • Method Details

    • handleGetObject

      public Object handleGetObject(String key)
      Description copied from class: ResourceBundle
      Gets an object for the given key from this resource bundle. Returns null if this resource bundle does not contain an object for the given key.
      Specified by:
      handleGetObject in class ResourceBundle
      Parameters:
      key - the key for the desired object
      Returns:
      the object for the given key, or null
    • getKeys

      public Enumeration<String> getKeys()
      Returns anEnumeration of the keys contained in thisResourceBundle and its parent bundles.
      Specified by:
      getKeys in class ResourceBundle
      Returns:
      anEnumeration of the keys contained in thisResourceBundle and its parent bundles.
      See Also:
    • handleKeySet

      protected Set<String> handleKeySet()
      Returns aSet of the keys containedonly in thisResourceBundle.
      Overrides:
      handleKeySet in class ResourceBundle
      Returns:
      aSet of the keys contained only in thisResourceBundle
      Since:
      1.6
      See Also: