Top Description Fields Constructors Methods
java.util

public Class PropertyResourceBundle

extends ResourceBundle
Class Inheritance
Imports
java.io.InputStream, .InputStreamReader, .Reader, .IOException, java.nio.charset.MalformedInputException, .UnmappableCharacterException, sun.nio.cs.ISO_8859_1, sun.security.action.GetPropertyAction, sun.util.PropertyResourceBundleCharset, .ResourceBundleEnumeration

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
# 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.nio.charset.MalformedInputException or an java.nio.charset.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.

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.

Since
1.1
See Also
ResourceBundle, ListResourceBundle, Properties

Field Summary

Modifier and TypeField and Description
private static final String
private final Map<String, Object>
Inherited from java.util.ResourceBundle:
parent

Constructor Summary

AccessConstructor and Description
public
PropertyResourceBundle(InputStream
an InputStream that represents a property file to read from.
stream
)

Creates a property resource bundle from an InputStream.

public
PropertyResourceBundle(Reader
a Reader that represents a property file to read from.
reader
)

Creates a property resource bundle from a Reader.

Method Summary

Modifier and TypeMethod and Description
public Enumeration<String>

Returns:

an Enumeration of the keys contained in this ResourceBundle and its parent bundles.
getKeys
()

Implements abstract java.util.ResourceBundle.getKeys.

Returns an Enumeration of the keys contained in this ResourceBundle and its parent bundles.

public Object
handleGetObject(String
the key for the desired object
key
)

Implements abstract java.util.ResourceBundle.handleGetObject.

Gets an object for the given key from this resource bundle.

protected Set<String>

Returns:

a Set of the keys contained only in this ResourceBundle
handleKeySet
()

Overrides java.util.ResourceBundle.handleKeySet.

Returns a Set of the keys contained only in this ResourceBundle.

Inherited from java.util.ResourceBundle:
clearCacheclearCachecontainsKeygetBaseBundleNamegetBundlegetBundlegetBundlegetBundlegetBundlegetBundlegetBundlegetBundlegetLocalegetObjectgetStringgetStringArraykeySetsetParent

Field Detail

encodingback to summary
private static final String encoding
lookupback to summary
private final Map<String, Object> lookup

Constructor Detail

PropertyResourceBundleback to summary
public PropertyResourceBundle(InputStream stream) throws IOException

Creates a property resource bundle from an InputStream. This constructor reads the property file in UTF-8 by default. If a java.nio.charset.MalformedInputException or an java.nio.charset.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.

Parameters
stream:InputStream

an InputStream that represents a property file to read from.

Annotations
@SuppressWarnings:unchecked, rawtypes
Exceptions
IOException:
if an I/O error occurs
NullPointerException:
if stream is null
IllegalArgumentException:
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.
PropertyResourceBundleback to summary
public PropertyResourceBundle(Reader reader) throws IOException

Creates a property resource bundle from a Reader. Unlike the constructor PropertyResourceBundle(InputStream), there is no limitation as to the encoding of the input property file.

Parameters
reader:Reader

a Reader that represents a property file to read from.

Annotations
@SuppressWarnings:unchecked, rawtypes
Exceptions
IOException:
if an I/O error occurs
NullPointerException:
if reader is null
IllegalArgumentException:
if a malformed Unicode escape sequence appears from reader.
Since
1.6

Method Detail

getKeysback to summary
public Enumeration<String> getKeys()

Implements abstract java.util.ResourceBundle.getKeys.

Returns an Enumeration of the keys contained in this ResourceBundle and its parent bundles.

Returns:Enumeration<String>

an Enumeration of the keys contained in this ResourceBundle and its parent bundles.

See Also
keySet()
handleGetObjectback to summary
public Object handleGetObject(String key)

Implements abstract java.util.ResourceBundle.handleGetObject.

Doc from java.util.ResourceBundle.handleGetObject.

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.

Parameters
key:String

the key for the desired object

Returns:Object

the object for the given key, or null

handleKeySetback to summary
protected Set<String> handleKeySet()

Overrides java.util.ResourceBundle.handleKeySet.

Returns a Set of the keys contained only in this ResourceBundle.

Returns:Set<String>

a Set of the keys contained only in this ResourceBundle

Since
1.6
See Also
keySet()