Java中resourceBundle和Properties的区别
2016-04-09 09:19
891 查看
第一种办法
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文件的内容。
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调用存储过程和函数
- 细说进程五种状态的生老病死——双胞胎兄弟Java线程
- java之其它命令
- java之javadoc命令
- java之jar命令详解
- java之classpath到底是什么
- Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
- JAVA的字节码技术
- java的JVM机制
- Debugging Android Java framework services using Eclipse
- 浅析Java中的final关键字
- java基础之java基本数据类型
- Java反射机制
- Java代码在实战中的优化
- day23_文件上传与下载__JavaMail邮件开发
- Eclipse 在开发中使用到的快捷键很实用噢(转载)
- 表达式语言之java对正则表达式的处理
- 【ACM】Spring Outing
- 分享 Java 数据库连接器
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json