1 使用说明
使用类文件代替资源文件条件
- 类名必须是baseName_language_country
- 类必须继承ListResourceBundle
2 代码示例
import java.util.*;
public class myMess_zh_CN extends ListResourceBundle
{
// 定义资源
private final Object myData[][]=
{
{"msg","{0},你好!今天的日期是{1}"}
};
// 重写方法getContents()
public Object[][] getContents()
{
// 该方法返回资源的key-value对
return myData;
}
}
import java.util.*;
import java.text.*;
public class HelloArg
{
public static void main(String[] args)
{
// 定义一个Locale变量
Locale currentLocale = null;
// 如果运行程序的指定了两个参数
if (args.length == 2)
{
// 使用运行程序的两个参数构造Locale实例
currentLocale = new Locale(args[0] , args[1]);
}
else
{
// 否则直接使用系统默认的Locale
currentLocale = Locale.getDefault(Locale.Category.FORMAT);
}
// 根据Locale加载语言资源
ResourceBundle bundle = ResourceBundle
.getBundle("myMess" , currentLocale);
// 取得已加载的语言资源文件中msg对应消息
String msg = bundle.getString("msg");
// 使用MessageFormat为带占位符的字符串传入参数
if(args.length == 2)
{
System.out.println(MessageFormat.format(msg
, args[0] , args[1]));
}
else
{
System.out.println(MessageFormat.format(msg
, "cakin" , new Date()));
}
}
}
3 运行结果
cakin,你好!今天的日期是16-9-3 上午10:56
4 ResiurceBunld搜索资源文件顺序
(1)baseName_zh_CN.class
(2)baseName_zh_CN.properties
(3)baseName_zh.class
(4)baseName_zh.properties
(5)baseName.class
(6)baseName.properties