ResourceBundle and ListResourceBundle class in Java with Examples

12 Oct, 2021
The ResourceBundle and ListResourceBundle classes are part java.util package. These classes are designed to aid in the internationalization of programs. 
ResourceBundle: The class ResourceBundle is an abstract class. It defines methods that enable you to manage a collection of locale-sensitive resources. Resource bundles are identified by their family name. To the family name is added a two-character lowercase language code that specifies the language. We can also specify a country code after the language code. It is a two-character uppercase identifier and is preceded by an underscore when linked to a resource bundle name. 
Class Hierarchy:  
java.lang.Object
↳java.util.ResourceBundle
Constructors: 
1. ResourceBundle(): The default constructor which is mainly designed for use by the subclasses and the factory methods. 
public ResourceBundle()
Methods: 
1. clearCache(): This method deletes all resource bundles from the cache that were loaded by the default class loader. 
static final void clearCache()
2. containsKey(): This method returns true if the passed string argument is a key within the invoking resource bundle. 
boolean containsKey(String k)
3. getBundle(): This method loads the resource bundle with the given name and the specified locale. 
static final ResourceBundle getBundle(String familyName)
static final ResourceBundle getBundle(String familyName, Locale loc)
4. setParent(): This method sets the passed bundle as parent of the invoking bundle. In case of a lookup, if the key is not found in the invoking object, then it is looked up in the parent bundle. 
protected void setParent(ResourceBundle parent)
5. getObject(): This method retrieves and returns the Object associated with the key passed as argument either from the current resource bundle or the parent. 
public final Object getObject(String key)
6. getHandleObject(): This method returns the object associated with the given key from the resource bundle. If no object is available null is returned. 
protected abstract Object handleGetObject(String key)
7. getString(): This method retrieves and returns the string associated with the key passed as argument either from the current resource bundle or the parent. 
public final String getString(String key)
8. getStringArray(): This method retrieves and returns the string array associated with the key passed as argument either from the current resource bundle or the parent. 
public final String[] getStringArray(String key)
9. getLocale(): This method returns the Locale associated with the current bundle. 
public Locale getLocale()
10. containsKey(): This method checks whether a given key exists within a resource bundle or its parent or not. 
public boolean containsKey(String key)
11. keySet(): This method returns the set of all the keys in the current bundle or its parent bundle. 
public Set keySet()
ListResourceBundle: It is a subclass of ResourceBundle. It is an abstract class, which manages the resources in an array of key/value pairs. It adds only one new method getContents(), which must be implemented by every subclass.
Constructors:  1. ListResourceBundle(): The default constructor to create an object. 
public ListResourceBundle()
Methods: 
1. getContents(): This method returns a two dimensional array that contains key/value pairs that represent resources. 
protected abstract Object[][] getContents()
2. handleGetObject(): This method returns the object associated with the key in the current bundle if it exists. 
public final Object handleGetObject(String key)
3. getKeys(): This method returns an enumeration of the keys in the resource bundle.
public Enumeration getKeys()
4. handleKeySet(): This method returns the set of all the keys in the current resource bundle. 
protected Set handleKeySet()
Example to demonstrate the use of a ResourceBundle  
Java
import java.util.Locale;import java.util.ResourceBundle;import java.util.ListResourceBundle; class SampleRB extends ListResourceBundle {    protected Object[][] getContents()    {        Object[][] resources = new Object[3][2];         resources[0][0] = "title";        resources[0][1] = "My Program";         resources[1][0] = "StopText";        resources[1][1] = "Stop";         resources[2][0] = "StartText";        resources[2][1] = "Start";         return resources;    }}class SampleRB_de extends ListResourceBundle {    protected Object[][] getContents()    {        Object[][] resources = new Object[3][2];         resources[0][0] = "title";        resources[0][1] = "Mein Program";         resources[1][0] = "StopText";        resources[1][1] = "Anschlag";         resources[2][0] = "StartText";        resources[2][1] = "Anfang";         return resources;    }}public class LRBDemo {    public static void main(String[] args)    {        ResourceBundle rd            = ResourceBundle                  .getBundle("SampleRB",                             Locale.ENGLISH);        System.out.println("English Version:");        System.out.println("String for Title key: "                           + rd.getString("title"));        System.out.println("String for StopText key: "                           + rd.getString("StopText"));        System.out.println("String for StartText key: "                           + rd.getString("StartText"));         rd = ResourceBundle                 .getBundle("SampleRB",                            Locale.GERMAN);        System.out.println("\nGerman Version");        System.out.println("String for Title key: "                           + rd.getString("title"));        System.out.println("String for StopText key: "                           + rd.getString("StopText"));        System.out.println("String for StartText key: "                           + rd.getString("StartText"));    }}
Output:
English Version:
String for Title key: My Program
String for StopText key: Stop
String for StartText key: Start

German Version
String for Title key: Mein Program
String for StopText key: Anschlag
String for StartText key: Anfang
Reference: https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html 
surindertarika1234
sagartomar9927
Java - util package
Java-Classes
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.