bundle java_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文件中加入:)。然后直接用

ResourceBundle.getBundle("config");则可读取

properties/config.properties文件的内容。

3.resourceBundle.getBundle(args0)中传入的参数为资源文件的basename.且不用加.properties文件后缀。

如资源文件名为:myres_zh_CN.properties或myres.properties则只需要传入myres就可以 了。

4.ResourceBundle这个类的作用就是读取资源属性文件(properties),然后根据.properties文件的名称信息(本地化信息),匹配当前系统的国别语言信息(也可以程序指定),然后获取相应的properties文件的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值