类 ResourceBundle 的核心作用就是用来加载指定的属性资源文件(.properties 文件),其作用有点类似类 Properties。
public void test() {
Locale locale = new Locale("zh", "CN");
// 根据指定的语言环境和基名加载资源文件
// 将指定的资源文件中的数据加载到ResourceBundle对象中,并返回该对象
ResourceBundle bundle = ResourceBundle.getBundle("message", locale);
// 从资源文件中获取指定key所对应的值
// 从对象bundle中获取指定key所对应的值(荐)
// 到对象bundle中获取指定key所对应的值
// 去对象bundle中获取指定key所对应的值
String title = bundle.getString("title");
System.out.println("将语言环境指定为中文时:"+title);
// 常量US引用的是一个Locale对象,这个对象代表着美式英文环境
bundle = ResourceBundle.getBundle("message", Locale.US);
title = bundle.getString("title");
System.out.println("将语言环境指定为美式英语时:"+title);
// 方法getDefault()会获取到一个Locale对象,这个对象代表着系统默认的语言环境
bundle = ResourceBundle.getBundle("message", Locale.getDefault());
title = bundle.getString("title");
System.out.println("根据系统默认的语言环境:"+title);
// 如果查找不到指定的资源文件,则根据当前系统的语言环境(即默认的Locale)来得到的本地化信息(即国际化资源文件)。
bundle = ResourceBundle.getBundle("message", Locale.GERMAN);
title = bundle.getString("title");
System.out.println("找不到指定的资源文件时:" + title);
// 如果只传入baseName,那么会根据系统默认的语言环境和指定的baseName去查找资源文件,当找不到时才会
// 去查找只有baseName的资源文件
bundle = ResourceBundle.getBundle("message");
title = bundle.getString("title");
System.out.println(title);
}