public class PropertyResourceBundle extends ResourceBundle
PropertyResourceBundle
is a concrete subclass of
ResourceBundle
that manages resources for a locale
using a set of static strings from a property file. See
ResourceBundle
for 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.getBundle
will automatically look for the appropriate properties file and create a
PropertyResourceBundle
that refers to it. See
ResourceBundle.getBundle
for a complete description of the search and instantiation strategy.
The following example 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 related example shows
how you can add bundles to this family that are implemented as subclasses
of ListResourceBundle
).
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 section 3.3 of The 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 a
PropertyResourceBundle
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:
ResourceBundle
,ListResourceBundle
,Properties
-
Nested Class Summary
-
Field Summary
-
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
Modifier and Type Method Description Enumeration<String>
getKeys()
Returns anEnumeration
of the keys contained in thisResourceBundle
and its parent bundles.protected Set<String>
handleKeySet()
Returns aSet
of the keys contained only 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 Details
-
PropertyResourceBundle
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 occursNullPointerException
- ifstream
is nullIllegalArgumentException
- 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
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
- ifreader
is nullIllegalArgumentException
- if a malformed Unicode escape sequence appears fromreader
.- Since:
- 1.6
-
-
Method Details
-
getKeys
Returns anEnumeration
of the keys contained in thisResourceBundle
and its parent bundles.- Specified by:
getKeys
in classResourceBundle
- Returns:
- an
Enumeration
of the keys contained in thisResourceBundle
and its parent bundles. - See Also:
ResourceBundle.keySet()
-
handleKeySet
Returns aSet
of the keys contained only in thisResourceBundle
.- Overrides:
handleKeySet
in classResourceBundle
- Returns:
- a
Set
of the keys contained only in thisResourceBundle
- Since:
- 1.6
- See Also:
ResourceBundle.keySet()
-