ResourceBundle主要用于读properties文件吗?
和我下边的这种方式有什么区别呢? 能点评一下吗?FileInputStream  in = new FileInputStream("E:/workspace/xx.properties");
pro.load(inst);
int i= Integer.parseInt(pro.getProperty("i"));

解决方案 »

  1.   

    如果你写外包程序的 这个用得多  主要是国际化标准的.
    而且其默认只能读.properties文件,而且他读的是基本名字.static ResourceBundle getBundle(String baseName) 如果a.properties,只能写a,
    否则报错,你可以用PropertyResourceBundle代替他.平时就用用properties就好了
      

  2.   

    ResourceBundle就是用在国际化上,如果只是简单地读取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文档,我也说不清楚关于你说的两种方法,如果使用你的方法,明显要你做很多额外的工作,这是划不来的!
      

  3.   

    上面的
    ResourceBundle bundle = ResourceBundle.getBundle("MyProgramStrings", locale);
    中的MyProgramSrings就是你定义的properties文件,根据提供的locale自动找到对应的文件。
    例如:
    MyProgramStrings_zh_CN.properties
    MyProgramStrings_en_US.properties
     .........
    如果找不到完全匹配的,Java就会自动去掉国家信息,然后继续匹配,直到找到最接近的Properties文件
    如果最终还是没找到,就抛出一个MissingResourceException异常
      

  4.   

    0 知道了, struts 的国际化和这个差不多, 可能就是封装了这个类吧!谢谢!