Class PropertyResourceBundle
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:
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 of The 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:
-
Nested Class Summary
Nested classes/interfaces declared in class ResourceBundle
ResourceBundle.ControlModifier and TypeClassDescriptionstatic classResourceBundle.Controldefines a set of callback methods that are invoked by theResourceBundle.getBundlefactory methods during the bundle loading process. -
Field Summary
Fields declared in class ResourceBundle
parent -
Constructor Summary
ConstructorsConstructorDescriptionPropertyResourceBundle(InputStream stream) Creates a property resource bundle from anInputStream.PropertyResourceBundle(Reader reader) Creates a property resource bundle from aReader. -
Method Summary
Modifier and TypeMethodDescriptiongetKeys()Returns anEnumerationof the keys contained in thisResourceBundleand its parent bundles.handleGetObject(String key) Gets an object for the given key from this resource bundle.Returns aSetof the keys contained only in thisResourceBundle.Methods declared in class ResourceBundle
clearCache, clearCache, containsKey, getBaseBundleName, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getLocale, getObject, getString, getStringArray, keySet, setParentModifier and TypeMethodDescriptionstatic final voidRemoves all resource bundles from the cache that have been loaded by the caller's module.static final voidclearCache(ClassLoader loader) Removes all resource bundles from the cache that have been loaded by the given class loader.booleancontainsKey(String key) Determines whether the givenkeyis contained in thisResourceBundleor its parent bundles.Returns the base name of this bundle, if known, ornullif unknown.static final ResourceBundleGets a resource bundle using the specified base name, the default locale, and the caller module.static ResourceBundleGets a resource bundle using the specified base name and the default locale on behalf of the specified module.static final ResourceBundleGets a resource bundle using the specified base name and locale, and the caller module.static ResourceBundlegetBundle(String baseName, Locale locale, ClassLoader loader) Gets a resource bundle using the specified base name, locale, and class loader.static ResourceBundlegetBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control) Returns a resource bundle using the specified base name, target locale, class loader and control.static ResourceBundleGets a resource bundle using the specified base name and locale on behalf of the specified module.static final ResourceBundlegetBundle(String baseName, Locale targetLocale, ResourceBundle.Control control) Returns a resource bundle using the specified base name, target locale and control, and the caller's class loader.static final ResourceBundlegetBundle(String baseName, ResourceBundle.Control control) Returns a resource bundle using the specified base name, the default locale and the specified control.Returns the locale of this resource bundle.final ObjectGets an object for the given key from this resource bundle or one of its parents.final StringGets a string for the given key from this resource bundle or one of its parents.final String[]getStringArray(String key) Gets a string array for the given key from this resource bundle or one of its parents.keySet()Returns aSetof all keys contained in thisResourceBundleand its parent bundles.protected voidsetParent(ResourceBundle parent) Sets the parent bundle of this bundle.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Creates and returns a copy of this object.booleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Constructor Details
-
PropertyResourceBundle
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
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 Details
-
handleGetObject
Description copied from class:ResourceBundleGets 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:
handleGetObjectin classResourceBundle- Parameters:
key- the key for the desired object- Returns:
- the object for the given key, or null
-
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:
-
handleKeySet
Returns aSetof the keys contained only in thisResourceBundle.- Overrides:
handleKeySetin classResourceBundle- Returns:
- a
Setof the keys contained only in thisResourceBundle - Since:
- 1.6
- See Also:
-