科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > ResourceBundle和properties有什么区别
总共48086条微博

动态微博

查看: 1091|回复: 0

ResourceBundle和properties有什么区别

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-05-21 10:44:57 |只看该作者 |倒序浏览
    java.util.ResourceBundle 和java.util.properties 读取配置文件区别

    这两个类都是读取properties格式的文件的,而Properties同时还能用来写文件。  

      Properties的处理方式是将其作为一个映射表,而且这个类表示了一个持久的属性集,他是继承HashTable这个类。ResourceBundle本质上也是一个映射,但是它提供了国际化的功能。  

      假设电脑设置的地区是中国大陆,语言是中文  

      那么你向ResourceBundle(资源约束名称为base)获取abc变量的值的时候,ResourceBundle会先后搜索  
      base_zh_CN_abc.properties  
      base_zh_CN.properties  
      base_zh.properties  
      base.properties  
      文件,直到找到abc为止  

      相应的,在英国就会去找base_en_GB_abc.properties等。  

      因此,你只需要提供不同语言的资源文件,而无需改变代码,就达到了国际化的目的。  

      另外,在.properties里面,不能直接使用中文之类文字,而是要通过native2ascii转乘\uxxxx这种形式

       附:
       1.编码问题:
            无论系统的默认编码是什么,ResourceBundle在读取properties文件时统一使用iso8859-1编码。因此,如果在默认编码为 GBK的系统中编写了包含中文的properties文件,经由ResourceBundle读入时,必须转换为GBK格式的编码,否则不能正确识别。
       2.用法:
            ResourceBundle:
            ResourceBundle conf= ResourceBundle.getBundle("config/fnconfig/fnlogin");
            String value= conf.getString("key");

            Properties:
            Properties prop = new Properties();
            try {
                    InputStream is = getClass().getResourceAsStream("xmlPath.properties");
                    prop.load(is);
                    //或者直接prop.load(new FileInputStream("c:/xmlPath.properties"));
                    if (is != null) {
                            is.close();
                    }
            } catch (Exception e) {
                    System.out.println( "file " + "catalogPath.properties" + " not found!\n" + e);
            }
            String value= prop.getProperty("key").toString();


    科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表