1、java.util.ResourceBundle
该类用于获取资源文件。其作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序中指定),然后获取相应的properties文件的内容。
ResourceBundle对象的获取可以通过以下几种方法 :
getBundle(String baseName):使用指定的基本名称、默认的语言环境和调用者的类加载器获取资源包。
getBundle(String baseName, Locale locale):使用指定的基本名称、语言环境和调用者的类加载器获取资源包。
getBundle(String baseName, Locale locale, ClassLoader loader):使用指定的基本名称、语言环境和类加载器获取资源包。
getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control):使用指定基本名称、目标语言环境、类加载器和控件返回资源包。
getBundle(String baseName, Locale targetLoacle, ResourceBundle.Control control):使用指定基本名称、目标语言环境和控件、调用者的类加载器返回一个资源包。
getBundle(String baseName, ResourceBundle.Control control):使用指定基本名称、默认语言环境和指定控件返回一个资源包。
通过ResourceBundle获取资源文件内容的方法:
getObject(String key):从此资源包或它的某个父包中获取给定键的对象。
getString(String key):从此资源包或它的某个父包中获取给定键的字符串。
getStringArrary(String key):从此资源包或它的某个父包中获取给定键的字符串数组。
2、java.util.Locale
Locacle对象表示了特定的地理、政治和文化区域。需要Locale来执行器任务的操作称为语言环境敏感的操作。使用此类中的方法来创建Locale:
Locale(String language):根据语言代码构造一个语言环境。
Locale(String language, String Country):根据语言和国家/地区构造一个语言环境。
Locale(String language, String Country, String variant):根据语言、国家/地区和变量构造一个语言环境。
getDefault():获得此 Java 虚拟机实例的当前默认语言环境值。
3、实例
public static void main(String[] args) {
//将资源设置为中国
Locale locale1 = new Locale("zh", "CN");
ResourceBundle res1 = ResourceBundle.getBundle("res", locale1);//res为工程根目录下的res.properties文件
System.out.println(res1.getString("test"));
//将资源设置为默认国别
ResourceBundle res2 = ResourceBundle.getBundle("res_zh", Locale.getDefault());
System.out.println(res2.getString("test"));
//将资源设置为美国
Locale locale3 = new Locale("en", "US");
ResourceBundle res3 = ResourceBundle.getBundle("res", locale3);
System.out.println(res3.getString("test"));
}