首页 > 其他 > 详细

读取.properties配置文件的方式

时间:2019-10-12 14:57:32      阅读:85      评论:0      收藏:0      [点我收藏+]

一.Properties类解读:

1.Properties类本质其实还是HashTabe,及底层的实现是HashTable

public
class Properties extends Hashtable<Object,Object>

 可以看到Properties继承了HashTable类,HashTable底层是以数组+链表的形式实现的(jdk1.7,jdk1.8就变成了数组+链表+红黑树的结构);HashTable这种数据结构中可以存放很多种数据类型,但是Properties类只支持存储String类型的key/value,有api文档为证:

技术分享图片

 

2. 所以Properties类中不建议使用父类HashTable中的put/putAll方法,因为这有可能会插入一些非字符串的键值,以api问档为证(其实我就是翻译了一遍文档):

技术分享图片

 

 3.Properties类可以从流中读取或者保存到流中。

技术分享图片

 

 上api:

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

二.

方式一:直接使用流的方式加载properties文件

package com.tust.reflection;


import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

public class ReflectionTest{
    public static void main(String[] args) throws Exception {

        Properties prop = new Properties();
        FileInputStream in = new FileInputStream("src\\refletion.properties");
        prop.load(in);


        for(String key:prop.stringPropertyNames()){
                System.out.println("键为:"+key+"对应的值为:"+prop.getProperty(key));
            }
    }
}

 方式二:使用反射加载properties配置文件

package com.tust.reflection;


import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

public class ReflectionTest{
    public static void main(String[] args) throws Exception {

        Properties prop = new Properties();
        InputStream resourceAsStream = ReflectionTest.class.getClassLoader().getResourceAsStream("refletion.properties");
        prop.load(resourceAsStream);


        for(String key:prop.stringPropertyNames()){
                System.out.println("键为:"+key+"对应的值为:"+prop.getProperty(key));
            }
    }
}

 

读取.properties配置文件的方式

原文:https://www.cnblogs.com/wsxdev/p/11661145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!