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
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 MalformedInputException
or an UnmappableCharacterException
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.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.Control
parent
Constructor | Description |
---|---|
PropertyResourceBundle |
Creates a property resource bundle from an InputStream . |
PropertyResourceBundle |
Creates a property resource bundle from a Reader . |
Modifier and Type | Method | Description |
---|---|---|
Enumeration |
getKeys() |
Returns an Enumeration of the keys contained in this ResourceBundle and its parent bundles. |
Object |
handleGetObject |
Gets an object for the given key from this resource bundle. |
protected Set |
handleKeySet() |
Returns a Set of the keys contained only in this ResourceBundle . |
clearCache, clearCache, containsKey, getBaseBundleName, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, keySet, setParent
public PropertyResourceBundle(InputStream stream) throws IOException
InputStream
. This constructor reads the property file in UTF-8 by default. If a MalformedInputException
or an UnmappableCharacterException
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. 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.stream
- an InputStream that represents a property file to read from.IOException
- if an I/O error occursNullPointerException
- if stream
is nullIllegalArgumentException
- if stream
contains a malformed Unicode escape sequence.MalformedInputException
- if the system property java.util.PropertyResourceBundle.encoding
is set to "UTF-8" and stream
contains an invalid UTF-8 byte sequence.UnmappableCharacterException
- if the system property java.util.PropertyResourceBundle.encoding
is set to "UTF-8" and stream
contains an unmappable UTF-8 byte sequence.public PropertyResourceBundle(Reader reader) throws IOException
Reader
. Unlike the constructor PropertyResourceBundle(InputStream)
, there is no limitation as to the encoding of the input property file.reader
- a Reader that represents a property file to read from.IOException
- if an I/O error occursNullPointerException
- if reader
is nullIllegalArgumentException
- if a malformed Unicode escape sequence appears from reader
.public Object handleGetObject(String key)
ResourceBundle
handleGetObject
in class ResourceBundle
key
- the key for the desired objectpublic Enumeration<String> getKeys()
Enumeration
of the keys contained in this ResourceBundle
and its parent bundles.getKeys
in class ResourceBundle
Enumeration
of the keys contained in this ResourceBundle
and its parent bundles.protected Set<String> handleKeySet()
Set
of the keys contained only in this ResourceBundle
.handleKeySet
in class ResourceBundle
Set
of the keys contained only in this ResourceBundle
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/PropertyResourceBundle.html