Java ResourceBundle.Control newBundle() 方法



描述

Java ResourceBundle.Control newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) 方法使用給定的類載入器(如果需要)為給定格式和區域設定的給定捆綁名稱例項化資源捆綁。

如果對於給定的引數沒有可用的資源捆綁,則此方法返回null。如果由於意外錯誤而無法例項化資源捆綁,則必須透過丟擲 Error 或 Exception 來報告錯誤,而不僅僅是返回 null。

宣告

以下是java.util.Control.newBundle()方法的宣告

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

引數

  • baseName − 資源捆綁的基本捆綁名稱,一個完全限定的類名

  • locale − 應為其例項化資源捆綁的區域設定

  • format − 要載入的資源捆綁格式

  • loader − 快取中已過期的資源捆綁例項

  • reload − 指示捆綁重新載入的標誌;如果重新載入已過期的資源捆綁,則為true,否則為false

返回值

此方法返回資源捆綁例項,如果找不到任何例項,則返回null

異常

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

  • IllegalArgumentException − 如果格式未知,或者為給定引數找到的資源包含格式錯誤的資料。

  • ClassCastException − 如果載入的類無法轉換為 ResourceBundle

  • IllegalAccessException − 如果類或其無參建構函式不可訪問。

  • InstantiationException − 如果由於某種其他原因導致類的例項化失敗。

  • ExceptionInInitializerError − 如果此方法引發的初始化失敗。

  • SecurityException − 如果存在安全管理器並且拒絕建立新例項。

  • IOException − 如果在使用任何 I/O 操作讀取資源時發生錯誤

為美國區域設定建立新的資源捆綁名稱示例

以下示例顯示了 Java ResourceBundle.Control newBundle() 方法的使用來獲取資源捆綁。我們使用 getControl() 方法建立了使用 FORMAT_DEFAULT 的資源捆綁控制。然後使用美國區域設定的 newBundle() 方法使用 hello_en_US.properties 檔案建立資源捆綁,然後根據鍵列印值。

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!

為法語區域設定建立新的資源捆綁名稱示例

以下示例顯示了 Java ResourceBundle.Control newBundle() 方法的使用來獲取資源捆綁。我們使用 getControl() 方法建立了使用 FORMAT_DEFAULT 的資源捆綁控制。然後使用法語區域設定的 newBundle() 方法使用 hello_fr_FR.properties 檔案建立資源捆綁,然後根據鍵列印值。

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

輸出

假設我們在你的 CLASSPATH 中有一個名為hello_fr_FR.properties的資原始檔,其內容如下。此檔案將用作我們示例程式的輸入 -

hello = Bonjour le monde!

讓我們編譯並執行以上程式,這將產生以下結果 -

Bonjour le monde!

為德語區域設定建立新的資源捆綁名稱示例

以下示例顯示了 Java ResourceBundle.Control newBundle() 方法的使用來獲取資源捆綁。我們使用 getControl() 方法建立了使用 FORMAT_DEFAULT 的資源捆綁控制。然後使用德語區域設定的 newBundle() 方法使用 hello_de_DE.properties 檔案建立資源捆綁,然後根據鍵列印值。

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

輸出

假設我們在你的 CLASSPATH 中有一個名為hello_de_DE.properties的資原始檔,其內容如下。此檔案將用作我們示例程式的輸入 -

hello = Hallo Welt!

讓我們編譯並執行以上程式,這將產生以下結果 -

Hallo Welt!
java_util_resourcebundle_control.htm
廣告

© . All rights reserved.