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.
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 an InputStream
or a Reader
, which represents a property file.
Constructing a PropertyResourceBundle
instance from an InputStream
requires that the input stream be encoded in UTF-8
. By default, if a
java.
or an
java.
occurs on reading the
input stream, then the PropertyResourceBundle
instance resets to the state
before the exception, re-reads the input stream in ISO-8859-1
, and
continues reading. If the system property
java.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 a Reader
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 Specification
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.
ResourceBundle
, ListResourceBundle
, Properties
Modifier and Type | Field and Description |
---|---|
private static final String | |
private final Map |
Access | Constructor and Description |
---|---|
public | PropertyResourceBundle(InputStream
an InputStream that represents a property file
to read from. stream)Creates a property resource bundle from an |
public | PropertyResourceBundle(Reader
a Reader that represents a property file to
read from. reader)Creates a property resource bundle from a |
Modifier and Type | Method and Description |
---|---|
public Enumeration | Returns: anEnumeration of the keys contained in
this ResourceBundle and its parent bundles.Implements abstract java. Returns an |
public Object | handleGetObject(String
the key for the desired object key)Implements abstract java. Gets an object for the given key from this resource bundle. |
protected Set | Returns: aSet of the keys contained only in this
ResourceBundle Overrides java. Returns a |
encoding | back to summary |
---|---|
private static final String encoding |
lookup | back to summary |
---|---|
private final Map<String, Object> lookup |
PropertyResourceBundle | back to summary |
---|---|
public PropertyResourceBundle(InputStream stream) throws IOException Creates a property resource bundle from an
|
PropertyResourceBundle | back to summary |
---|---|
public PropertyResourceBundle(Reader reader) throws IOException Creates a property resource bundle from a
|
getKeys | back to summary |
---|---|
public Enumeration Implements abstract java. Returns an
|
handleGetObject | back to summary |
---|---|
public Object handleGetObject(String key) Implements abstract java. Doc from java. 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. |
handleKeySet | back to summary |
---|---|
protected Set Overrides java. Returns a |