Java.util.ResourceBundle.Control.newBundle() Method



The java.util.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.


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

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


  • 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.


  • 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


The following example shows the usage of java.util.ResourceBundle.Control.newBundle() method.

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, "", cl, false);
         System.out.println("" + a.getString("hello"));
      } catch (Exception ex) {

Assuming we have a resource file 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!