通过java.util.ResourceBundle 可以非常简单的读取配置文件,如下
package util;
import java.util.ResourceBundle;
/**
* 项目参数工具类
*
* @author
*
*/
public class ResourceUtil {
private static final ResourceBundle bundle = ResourceBundle.getBundle("config");
/**
* 获得sessionInfo名字
*
* @return
*/
public static final String getSessionInfoName() {
return bundle.getString("sessionInfoName");
}
}
它会读取WEB-INF/classes 目录下后缀为.properties的文件。
ResourceBundle 和Local一起使用可以实现配置文件的国际化。实例如下
定义三个资源文件,放到src的根目录下面(必须这样,或者你放到自己配置的calsspath下面。
myres.properties
aaa=good
bbb=thanks
bbb=thanks
myres_en_US.properties
aaa=good
bbb=thanks
bbb=thanks
myres_zh_CN.properties
aaa=\u597d
bbb=\u591a\u8c22
bbb=\u591a\u8c22
import java.util.Locale;
import java.util.ResourceBundle;
/**
* 国际化资源绑定测试
*
* @author leizhimin 2009-7-29 21:17:42
*/
public class TestResourceBundle {
public static void main(String[] args) {
Locale locale1 = new Locale( "zh", "CN");
ResourceBundle resb1 = ResourceBundle.getBundle( "myres", locale1);
System.out.println(resb1.getString( "aaa"));
ResourceBundle resb2 = ResourceBundle.getBundle( "myres", Locale.getDefault());
System.out.println(resb1.getString( "aaa"));
Locale locale3 = new Locale( "en", "US");
ResourceBundle resb3 = ResourceBundle.getBundle( "myres", locale3);
System.out.println(resb3.getString( "aaa"));
}
}
import java.util.ResourceBundle;
/**
* 国际化资源绑定测试
*
* @author leizhimin 2009-7-29 21:17:42
*/
public class TestResourceBundle {
public static void main(String[] args) {
Locale locale1 = new Locale( "zh", "CN");
ResourceBundle resb1 = ResourceBundle.getBundle( "myres", locale1);
System.out.println(resb1.getString( "aaa"));
ResourceBundle resb2 = ResourceBundle.getBundle( "myres", Locale.getDefault());
System.out.println(resb1.getString( "aaa"));
Locale locale3 = new Locale( "en", "US");
ResourceBundle resb3 = ResourceBundle.getBundle( "myres", locale3);
System.out.println(resb3.getString( "aaa"));
}
}
运行结果:
好
好
good
Process finished with exit code 0
好
good
Process finished with exit code 0
如果使用默认的Locale,那么在英文操作系统上,会选择myres_en_US.properties或myres.properties资源文件。