`
starbhhc
  • 浏览: 629225 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

JAVA读取属性文件的几种方法

    博客分类:
  • java
 
阅读更多

1.使用java.util.Properties类的load()方法
  
  示例:

Java代码
InputStream in = lnew BufferedInputStream(new FileInputStream(name));   
  Properties p = new Properties();   
  p.load(in);  
 
  2.使用java.util.ResourceBundle类的getBundle()方法  
  示例:

Java代码
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());  
  3.使用java.util.PropertyResourceBundle类的构造函数  
  示例:

Java代码
InputStream in = new BufferedInputStream(new FileInputStream(name));   
  ResourceBundle rb = new PropertyResourceBundle(in);  
  4.使用class变量的getResourceAsStream()方法  
  示例:

Java代码
InputStream in = JProperties.class.getResourceAsStream(name);   
  Properties p = new Properties();   
  p.load(in);  
  5.使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法  
  示例:

Java代码
InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name);   
  Properties p = new Properties();   
  p.load(in);  
  6.使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法  
  示例:


Java代码
InputStream in = ClassLoader.getSystemResourceAsStream(name);   
  Properties p = new Properties();   
  p.load(in);  
7.使用apache的PropertiesConfiguration类

  示例:
Java代码

Configuration config = new PropertiesConfiguration("test.properties");

config.getProperty(key);

 

  补充
  
  Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
  
  示例:

Java代码
InputStream in = context.getResourceAsStream(path);   
  Properties p = new Properties();   
  p.load(in);   

其中name为properties文件名字.但我在网上发现有人说要写properties文件的绝对路径,否则测试   不 能通过.我没验证过,有兴趣的朋友可以试试.

      就我个人而言我是比较偏向用第3方法.我在网上找到一篇介绍的更为详细的文章,全文如下:
  在设计时,我们往往需要访问一些适合本地修改的配置信息,如果作为静态变量,那么每次修改都需要重新编译一个class,.config保存此类信息并不适合,这时我们需要ResourceBundle。
   通过ResourceBundle,我们需要访问位于/WEB-INF/classes目录下的一个后缀名为properties的文本类型文件,从里面读取我们需要的值。

   

Java代码
Locale locale = Locale.getDefault();   
    ResourceBundle localResource = ResourceBundle.getBundle("ConnResource", locale);   
    
    String value = localResource.getString("test");   
    System.out.println("ResourceBundle: " + value);  
    这里对应了/WEB-INF/class/ConnResource.properties文件内容为:

    test=hello world
    打印出来的结果就是hello world  
    请注意,这里我们可以利用Locale和ResourceBundle的这个组合创建国际化的java程序。我们可以把locale实例化为

Java代码
new Locale("zh","CN");
    通过

Java代码
ResourceBundle.getBundle("MessagesBundle",  locale);

    系统将自动寻找MessagesBundle_zh_CN,即定义为中国大陆地区简体中文。如果没有该文件,则会依次寻找MessagesBundle_zh,MessagesBundle,直到找到为止。

分享到:
评论

相关推荐

    JAVA读取属性文件的几种方法总结

    以下是对在JAVA中读取属性文件的几种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    J2EE中XML配置文件的读取处理

    Java程序的配置文件都开始使用XML格式,以前是使用类似windows的INI格式(Java中也有 Propertiesy这样的类专门处理这样的属性配置文件)。使用XML作为Java的配置文件有很多好处,从Tomcat的安装配置文件和J2ee的配置...

    java 面试题 总结

     final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的...

    java中的@Value获取不到配置文件的值,也加载不到默认值

    问题 自己开发一个工具类,为第三方应用提供调用接口,但是打包后测试过程...从配置上,完全没有写错的可能,见上方的配置,所以只能从不能获取配置文件内容的几种可能着手了! 变量被static关键字所修饰 我们所需要获

    Java面试宝典2020修订版V1.0.1.doc

    1、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 56 2、sleep() 和 wait() 有什么区别? 56 3、当一个线程进入一个对象的一个synchronized方法后,其它线程...

    JAVA面试题最全集

    76.EJB有哪几种?区别是什么? 77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何进行版本控制? 81.UML中,类视图如何表示类中的继承与聚合? 82.客户端...

    java面试宝典

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    Java 2平台安全技术-结构,API设计和实现

    7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数产生算法 137 7.6.5 证书类型 137 7.6.6 密钥库类型 137 7.7 算法 137 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例245 读取XML文件属性 310 第3篇 窗体与控件应用 第11章 窗体设计 314 11.1 设置窗体位置 315 实例246 控制窗体加载时的位置 315 实例247 设置窗体在屏幕中的位置 315 实例248 从上次关闭位置启动窗体 316 实例...

    JAVA 2平台安全技术-结构,API设计和实现

    7.5.4 实例4:读取包含证书的文件 135 7.6 标准名 136 7.6.1 消息摘要算法 136 7.6.2 密钥和参数算法 136 7.6.3 数字签名算法 137 7.6.4 随机数产生算法 137 7.6.5 证书类型 137 7.6.6 密钥库类型 137 7.7 算法 137 ...

    超级有影响力霸气的Java面试题大全文档

     final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。 finally是异常处理语句结构的一部分,表示总是执行。 finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的...

    java面试题

    多线程几种实现方法,同步? 答:多线程有两种实现方法,一种是继承Thread类或者实现Runnable接口。同步就是在方法返回类型后面加上synchronized。 c#中的委托,事件是不是委托? 答:委托就是将方法作为一个参数...

    一个java正则表达式工具类源代码.zip(内含Regexp.java文件)

    在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧. 这个工具类目前主要有25种正规表达式(有些不常用,但那时才仔细深入的研究了一下正规,写上瘾了,就当时能想到的都写了): 1....

    DWR.xml配置文件说明书(含源码)

    DWR 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回Document,Element,Node.DWR会自动将这些转换成浏览器DOM对象.通常在启动JDOM Converter时会有一个提示信息,除非你想采用JDOMconverter否则可以...

    安卓java读取网页源码-vue5:vue知识点

    安卓java读取网页源码 1、active-class是哪个组件的属性?嵌套路由怎么定义? 答:vue-router模块的router-link组件。 2、怎么定义vue-router的动态路由?怎么获取传过来的动态参数? 答:在router目录下的index.js...

Global site tag (gtag.js) - Google Analytics