ResourceBundle主要用于读properties文件吗?
和我下边的这种方式有什么区别呢? 能点评一下吗?FileInputStream in = new FileInputStream("E:/workspace/xx.properties");
pro.load(inst);
int i= Integer.parseInt(pro.getProperty("i"));
和我下边的这种方式有什么区别呢? 能点评一下吗?FileInputStream in = new FileInputStream("E:/workspace/xx.properties");
pro.load(inst);
int i= Integer.parseInt(pro.getProperty("i"));
而且其默认只能读.properties文件,而且他读的是基本名字.static ResourceBundle getBundle(String baseName) 如果a.properties,只能写a,
否则报错,你可以用PropertyResourceBundle代替他.平时就用用properties就好了
比如读取数据库配置信息,应该使用java.util.Properties类,也就是你上面所使用的在国际化时,一般在代码中不会硬编码字符串,像菜单,按钮,或者网站导航等文字
而是按照不同的Locale存储在不同的properties文件中,文件的命名也是有规定的,如下
bundleName_language_country.properties,通过这样给使用不同的语言和不同的国家
定义resource,从而支持国际化。
ResourceBundle bundle = ResourceBundle.getBundle("MyProgramStrings", locale);
就可以得到对应语言和国家的Resource
String label = bundle.getString("label");就OK了另外,ResourceBundle不仅可以使用在文本信息上,也可以继承ResourceBundle,从而为不同的
Locale返回不同的对象。。还是参考Java API文档,我也说不清楚关于你说的两种方法,如果使用你的方法,明显要你做很多额外的工作,这是划不来的!
ResourceBundle bundle = ResourceBundle.getBundle("MyProgramStrings", locale);
中的MyProgramSrings就是你定义的properties文件,根据提供的locale自动找到对应的文件。
例如:
MyProgramStrings_zh_CN.properties
MyProgramStrings_en_US.properties
.........
如果找不到完全匹配的,Java就会自动去掉国家信息,然后继续匹配,直到找到最接近的Properties文件
如果最终还是没找到,就抛出一个MissingResourceException异常