Java ResourceBundle.Control newBundle() Method



Description

The Java ResourceBundle.Control newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) method instantiates a resource bundle for the given bundle name of the given format and locale, using the given class loader if necessary.

This method returns null if there is no resource bundle available for the given parameters. If a resource bundle can't be instantiated due to an unexpected error, the error must be reported by throwing an Error or Exception rather than simply returning null.

Declaration

Following is the declaration for java.util.Control.newBundle() method

public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload)

Parameters

  • baseName − the base bundle name of the resource bundle, a fully qualified class name

  • locale − the locale for which the resource bundle should be instantiated

  • format − the resource bundle format to be loaded

  • loader − the resource bundle instance that has been expired in the cache

  • reload − the flag to indicate bundle reloading; true if reloading an expired resource bundle, false otherwise

Return Value

This method returns the resource bundle instance, or null if none could be found.

Exception

  • NullPointerException − if bundleName, locale, format, or loader is null, or if null is returned by toBundleName

  • IllegalArgumentException − if format is unknown, or if the resource found for the given parameters contains malformed data.

  • ClassCastException − if the loaded class cannot be cast to ResourceBundle

  • IllegalAccessException − if the class or its nullary constructor is not accessible.

  • InstantiationException − if the instantiation of a class fails for some other reason.

  • ExceptionInInitializerError − if the initialization provoked by this method fails.

  • SecurityException − If a security manager is present and creation of new instances is denied.

  • IOException − if an error occurred when reading resources using any I/O operations

Creating a New Resource Bundle Name for US Locale Example

The following example shows the usage of Java ResourceBundle.Control newBundle() method to get the resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then resource bundle is created using newBundle() method of US locale with hello_en_US.properties file and then a value is printed based on a key.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);
      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // create a new bundle
      ResourceBundle a;
      try {
         a = rbc.newBundle("hello", Locale.US, "java.properties", cl, false);
         System.out.println("" + a.getString("hello"));
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

Output

Assuming we have a resource file hello_en_US.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hello World!

Let us compile and run the above program, this will produce the following result −

Hello World!

Creating a New Resource Bundle Name for French Locale Example

The following example shows the usage of Java ResourceBundle.Control newBundle() method to get the resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then resource bundle is created using newBundle() method of French locale with hello_fr_FR.properties file and then a value is printed based on a key.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);
      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // create a new bundle
      ResourceBundle a;
      try {
         a = rbc.newBundle("hello", Locale.FRANCE, "java.properties", cl, false);
         System.out.println("" + a.getString("hello"));
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

Output

Assuming we have a resource file hello_fr_FR.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Bonjour le monde!

Let us compile and run the above program, this will produce the following result −

Bonjour le monde!

Creating a New Resource Bundle Name for German Locale Example

The following example shows the usage of Java ResourceBundle.Control newBundle() method to get the resource bundle. We've created a resource bundle control with FORMAT_DEFAULT using getControl() method. Then resource bundle is created using newBundle() method of German locale with hello_de_DE.properties file and then a value is printed based on a key.

package com.tutorialspoint;

import java.util.Locale;
import java.util.ResourceBundle;
import java.util.ResourceBundle.Control;

public class ResourceBundleControlDemo {
   public static void main(String[] args) {

      // create a new ResourceBundle.Control with default format
      ResourceBundle.Control rbc = ResourceBundle.Control.getControl(Control.FORMAT_DEFAULT);
      ClassLoader cl = ClassLoader.getSystemClassLoader();

      // create a new bundle
      ResourceBundle a;
      try {
         a = rbc.newBundle("hello", Locale.GERMANY, "java.properties", cl, false);
         System.out.println("" + a.getString("hello"));
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

Output

Assuming we have a resource file hello_de_DE.properties available in your CLASSPATH, with the following content. This file will be used as an input for our example program −

hello = Hallo Welt!

Let us compile and run the above program, this will produce the following result −

Hallo Welt!
java_util_resourcebundle_control.htm
Advertisements