- java.lang.Object
- java.util.ResourceBundle
- java.util.PropertyResourceBundle
public classPropertyResourceBundleextendsResourceBundle
PropertyResourceBundleis a concrete subclass ofResourceBundlethat manages resources for a locale using a set of static strings from a property file. SeeResourceBundlefor more information about resource bundles.Unlike other types of resource bundle, you don't subclass
PropertyResourceBundle. Instead, you supply properties files containing the resource data.ResourceBundle.getBundlewill automatically look for the appropriate properties file and create aPropertyResourceBundlethat refers to it. SeeResourceBundle.getBundlefor 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 on
PropertyResourceBundle, 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:
PropertyResourceBundlecan be constructed either from anInputStreamor aReader, which represents a property file. Constructing aPropertyResourceBundleinstance from anInputStreamrequires that the input stream be encoded inUTF-8. By default, if aMalformedInputExceptionor anUnmappableCharacterExceptionoccurs on reading the input stream, then thePropertyResourceBundleinstance resets to the state before the exception, re-reads the input stream inISO-8859-1, and continues reading. If the system propertyjava.util.PropertyResourceBundle.encodingis 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 section 3.3 ofThe Java™ Language Specification whereas the other constructor which takes aReaderdoes 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 a
PropertyResourceBundlesubclass 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:
ResourceBundle,ListResourceBundle,Properties
Nested Class Summary
Nested classes/interfaces declared in class java.util.ResourceBundle
ResourceBundle.Control
Field Summary
Fields declared in class java.util.ResourceBundle
parent
Constructor Summary
Constructors Constructor Description PropertyResourceBundle(InputStream stream)Creates a property resource bundle from anInputStream.PropertyResourceBundle(Reader reader)Creates a property resource bundle from aReader.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Enumeration<String>getKeys()Returns anEnumerationof the keys contained in thisResourceBundleand its parent bundles.protectedSet<String>handleKeySet()Returns aSetof the keys containedonly in thisResourceBundle.Methods declared in class java.util.ResourceBundle
clearCache,clearCache,containsKey,getBaseBundleName,getBundle,getBundle,getBundle,getBundle,getBundle,getBundle,getBundle,getBundle,getLocale,getObject,getString,getStringArray,handleGetObject,keySet,setParent
Constructor Detail
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 aMalformedInputExceptionor anUnmappableCharacterExceptionoccurs on reading the input stream, then the PropertyResourceBundle instance resets to the state before the exception, re-reads the input stream inISO-8859-1and continues reading. If the system propertyjava.util.PropertyResourceBundle.encodingis 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 occursNullPointerException- ifstreamis nullIllegalArgumentException- ifstreamcontains a malformed Unicode escape sequence.MalformedInputException- if the system propertyjava.util.PropertyResourceBundle.encodingis set to "UTF-8" andstreamcontains an invalid UTF-8 byte sequence.UnmappableCharacterException- if the system propertyjava.util.PropertyResourceBundle.encodingis set to "UTF-8" andstreamcontains 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 occursNullPointerException- ifreaderis nullIllegalArgumentException- if a malformed Unicode escape sequence appears fromreader.- Since:
- 1.6
Method Detail
getKeys
public Enumeration<String> getKeys()
Returns anEnumerationof the keys contained in thisResourceBundleand its parent bundles.- Specified by:
getKeysin classResourceBundle- Returns:
- an
Enumerationof the keys contained in thisResourceBundleand its parent bundles. - See Also:
ResourceBundle.keySet()
handleKeySet
protected Set<String> handleKeySet()
Returns aSetof the keys containedonly in thisResourceBundle.- Overrides:
handleKeySetin classResourceBundle- Returns:
- a
Setof the keys contained only in thisResourceBundle - Since:
- 1.6
- See Also:
ResourceBundle.keySet()