Java PropertyResourceBundle Class
Introduction
The Java PropertyResourceBundle class is a concrete subclass of ResourceBundle that manages resources for a locale using a set of static strings from a property file.Following are the important points about PropertyResourceBundle −
The class can be constructed either from an InputStream or a Reader, which represents a property file.
Class declaration
Following is the declaration for java.util.PropertyResourceBundle class −
public class PropertyResourceBundle extends ResourceBundle
Field
Fields inherited from class java.util.ResourceBundle.
Class constructors
| Sr.No. | Constructor & Description |
|---|---|
| 1 | PropertyResourceBundle(InputStream stream) This creates a property resource bundle from an InputStream. |
| 2 | PropertyResourceBundle(Reader reader) This creates a property resource bundle from a Reader. |
Class methods
| Sr.No. | Method & Description |
|---|---|
| 1 | Enumeration<String> getKeys()
This method returns an Enumeration of the keys contained in this ResourceBundle and its parent bundles. |
| 2 | Object handleGetObject(String key)
This method gets an object for the given key from this resource bundle. |
| 3 | protected Set<String> handleKeySet()
This method returns a Set of the keys contained only in this ResourceBundle. |
Methods inherited
This class inherits methods from the following classes −
- java.util.ResourceBundle
- java.util.Object
Getting Keys from a PropertyResourceBundle Instance Example
The following example shows the usage of Java PropertyResourceBundle getKeys() method. We created a InputStream of given content and then using that stream a PropertyResourceBundle object is created. Then using getKeys() method, an enumeration of keys is retrieved and entries are printed.
package com.tutorialspoint;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringBufferInputStream;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.PropertyResourceBundle;
public class PropertyResourceBundleDemo {
public static void main(String[] args) {
// Prepare content for simulating property files
String fileContent =
"# Integer value 1\n" +
"s1 = 1\n" +
"# String value PropertyResourceBundleDemo\n" +
"s2 = PropertyResourceBundleDemo\n" +
"# Date value Fri Jan 31 00:00:00 IST 3913\n" +
"s3 = Fri Jan 31 00:00:00 IST 3913";
InputStream propStream = new ByteArrayInputStream(fileContent.getBytes
(Charset.forName("UTF-8")));
try {
// Create property resource bundle
PropertyResourceBundle bundle =
new PropertyResourceBundle(propStream);
// Get resource keys
Enumeration<String> keys = bundle.getKeys();
while(keys.hasMoreElements()) {
System.out.println("Bundle key: "+keys.nextElement());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result −
Bundle key: s2 Bundle key: s1 Bundle key: s3