Java.util.ResourceBundle.Control.newBundle() 方法

描述

java.util.ResourceBundle.Control.newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) 方法为给定格式和语言环境的给定包名称实例化资源包, 如有必要,使用给定的类加载器。

如果给定参数没有可用的资源包,则此方法返回 null。 如果由于意外错误而无法实例化资源包,则必须通过抛出错误或异常来报告错误,而不是简单地返回 null。


声明

以下是 java.util.Control.newBundle() 方法的声明

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

参数

  • baseName − 资源包的基本包名,一个完全限定的类名

  • locale − 应为其实例化资源包的语言环境

  • format − 要加载的资源包格式

  • loader − 缓存中已经过期的资源包实例

  • 重新加载 − 指示捆绑重新加载的标志; 如果重新加载过期的资源包,则为 true,否则为 false


返回值

此方法返回资源包实例,如果找不到,则返回 null


异常

  • NullPointerException − 如果 bundleName、locale、format 或 loader 为 null,或者如果 toBundleName 返回 null

  • IllegalArgumentException − 如果格式未知,或者为给定参数找到的资源包含格式错误的数据。

  • ClassCastException − 如果加载的类无法转换为 ResourceBundle

  • IllegalAccessException − 如果类或其空构造函数不可访问。

  • InstantiationException − 如果类的实例化由于其他原因而失败。

  • ExceptionInInitializerError − 如果此方法引发的初始化失败。

  • SecurityException − 如果存在安全管理器并且拒绝创建新实例。

  • IOException − 如果在使用任何 I/O 操作读取资源时发生错误


示例

下面的例子展示了 java.util.ResourceBundle.Control.newBundle() 方法的使用。

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();
      }
   }
}

假设我们在您的 CLASSPATH 中有一个可用的资源文件 hello_en_US.properties,其内容如下。 该文件将用作我们示例程序的输入 −

hello = Hello World!

让我们编译并运行上面的程序,这将产生以下结果 −

Hello World!