• Java中resourceBundle和Properties的区别


    第一种办法
    InputStream is = Test.class.getResourceAsStream("DbConfig.properties");
    Properties p = new Properties();
    p.load(is);
    System.out.println(p.get("jndi"));
    Test.class要放在DbConfig.properties同一目录??? 这句话需要待测试.
    第二种办法
    private String BUNDLE_NAME = "com.newland.alarmquery.resource.DbConfig";///不要加上扩展名
    ResourceBundle resource_bundle = ResourceBundle.getBundle(BUNDLE_NAME);
    jndi=resource_bundle.getString("jndi");
    System.out.println(p.get("jndi"));
    一般来说,ResourceBundle类通常是用于针对不同的语言来使用的属性文件。
    而如果你的应用程序中的属性文件只是一些配置,并不是针对多国语言的目的。那么使用Properties类就可以了。
    通常可以把这些属性文件放在某个jar文件中。然后,通过调用class的getResourceAsStream方法,来获得该属性文件的流对象,再用Properties类的load方法来装载。
    有时候有些简单的配置文件可以没必要使用xml,其实ResourceBundle类就已经做的很好的。它甚至可以搜索到classpath里的jar文件中一些properties文件。
    例如在jar文件中的根目录放置一个文件:DbConfig.properties,然后只要这个jar文件在classpath里。就可以使用这样的语句来获得一些属性

    【需要注意的地方:】
    1.ResourceBundle.getBundle(String arg0)中的参数arg0必须包含属性文件的完整路径。
    2.将属性文件(例如config.properties)和读取文件在一起;
    属性文件和读取的文件要放在一起,如果要分开这两个文件呢?那么我们自己可以自己建立一个目录,将属性文件放到其下,再将该目录设置为classloader加载的目录(加入类路径中)则可,如下:
    1、在项目下建一文件夹,路径随意,名字任意(这为:properties)。
    2、(Eclipse中)选择项目->Properties->java Build Path->Libraries->Add
    Class Folder,将properties文件加入类路径即可(或者手动在.classpath文件中加入:<classpathentry kind="lib" path="properties"/>)。然后直接用
    ResourceBundle.getBundle("config");则可读取
    properties/config.properties文件的内容。
    3.resourceBundle.getBundle(args0)中传入的参数为资源文件的basename.且不用加.properties文件后缀。
    如资源文件名为:myres_zh_CN.properties或myres.properties则只需要传入myres就可以 了。
    4.ResourceBundle这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。

  • 相关阅读:
    display:table-cell,inline-block 之间的缝隙
    ACM-ICPC 2018 徐州赛区网络预赛 H. Ryuji doesn't want to study(树状数组)
    ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树+LCA)
    1076 两条不相交的路径
    1107 斜率小于0的连线数量
    1112 KGold
    51nod 1110 距离之和最小V3
    1246 罐子和硬币
    1163 最高的奖励(贪心+优先队列)
    1028C:Rectangles
  • 原文地址:https://www.cnblogs.com/fjhh/p/5370663.html
Copyright © 2020-2023  润新知