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文件的内容。
Java中resourceBundle和Properties的区别的更多相关文章
- java 中 ResourceBundle 使用 国际化使用
java 中 ResourceBundle 使用 可以根据以下类进行获取国际化文件: package org.mybatis.generator.internal.util.messages; imp ...
- Java中Set Map List 的区别
java中set map list的区别: 都是集合接口 简要说明 set --其中的值不允许重复,无序的数据结构 list --其中的值允许重复,因为其为有序的数据结构 map--成对的数据结构 ...
- Java中Comparable和Comparator接口区别分析
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comp ...
- 转:Java中abstract和interface的区别
转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...
- Java中this与super的区别【6】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激.请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing/ ...
- Java中堆和栈的区别(转)
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- Java中Long与long的区别(转)
Java中Long与long的区别(转) [本文转载自:http://www.cnblogs.com/bluestorm/archive/2012/04/22/2464739.html] 转载请联系原 ...
- java中堆和堆栈的区别
java中堆和堆栈的区别(一) 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取 ...
随机推荐
- Dapper使用方法:dapper-dot-net/Tests/Tests.cs解析(1)方法:TestMultiMapWithConstructor
sql: SELECT * FROM users; SELECT * FROM posts; SELECT * FROM Posts p LEFT JOIN Users u ON u.Id= p.Ow ...
- C中宏展开问题
C中宏展开问题 简单记录一下碰到的问题. #define STR(x) #x 我们知道使用上面的宏可以将x转换为字符串"x". 但是如果这样用: #define NUM 3 #de ...
- [转]WPF 获取程序启动路径
本文转自:http://hi.baidu.com/lilipangtou/item/f1b7488e3c92c4d05e0ec1ab 在Windows Form程序中,获取自身的启动目录是非常容易的, ...
- [转]15 个顶级 HTML5 游戏引擎
本文转自:http://www.open-open.com/news/view/13874db 1) HTML5 Game Engine Construct 2 is a leading high q ...
- 开篇,UVA 755 && POJ 1002 487--3279 (Trie + DFS / sort)
博客第一篇写在11月1号,果然die die die die die alone~ 一道不太难的题,白书里被放到排序这一节,半年前用快排A过一次,但是现在做的时候发现可以用字典树加深搜,于是乐呵呵的开 ...
- 转:Android中Context详解 ---- 你所不知道的Context
转:http://blog.csdn.net/qinjuning/article/details/7310620 转:http://blog.csdn.net/lmj623565791/article ...
- MyFragment
手机横竖屏自动切换不同的View: Landscape-Horizontal-横屏 Portrait-Vertical-竖屏 package com.example.shad_fnst.myfragm ...
- Part 57 to 58 Why should you override ToString and Equal Method
Part 57 Why should you override ToString Method sometimes you can override ToString method like that ...
- 别人网站生成的json
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sb.ToString()); WebResponse rep = req.GetResp ...
- OSPF_Network-type
OSPF的网络类型 目录 OSPF的网络类型... 1 总实验拓扑如下... 2 Router模拟帧中继交换机(所有网路为星型)... 2 配置映射... 3 广播模式下的OSPF. 4 非广播模式下 ...