java读取配置文件常用的四种方式

Posted edgedance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java读取配置文件常用的四种方式相关的知识,希望对你有一定的参考价值。

配置文件 
放置在src下面 obj.properties

className=com.store.order.dao.impl.OrderDaoImpl


方式一

@Test
    public void test1() throws Exception{
        //文件放在src下面.eclipse会自动拷贝一份到bin目录下,或者build/classes下面,
        InputStream is = Class.forName("com.store.test.test").getClassLoader().getResourceAsStream("obj.properties");
        Properties properties = new Properties();
        properties.load(is);
        String className = properties.getProperty("className");
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

方式二

    /**
     * 不推荐使用,文件位置被固定了,只能在本机使用,我们把class文件拷贝给别人就不能使用了
     * @throws Exception
     */
    @Test
    public void test2() throws Exception{
        FileInputStream fis = new FileInputStream("D:\\workspaces\\store_v1.0\\src\\obj.properties");
        Properties properties = new Properties();
        properties.load(fis);
        String className = properties.getProperty("className");
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

方式三

    @Test
    public void test3() throws Exception{
        //读取配置文件,只能读取默认后缀名为properties(不写)
        //如果有包,写法是com.store.obj
        //细节:他只能读取类路路径下的文件,不能写入
        ResourceBundle bundle = ResourceBundle.getBundle("obj"); 
        String className = bundle.getString("className"); //通过键获取值
        System.out.println(className);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

方式四

/** 
 * Spring 提供的 PropertiesLoaderUtils 允许您直接通过基于类路径的文件地址加载属性资源 
 * 最大的好处就是:实时加载配置文件,修改后立即生效,不必重启 
 */  
private static void springUtil(){  
    Properties props = new Properties();  
    while(true){  
        try {  
            props=PropertiesLoaderUtils.loadAllProperties("message.properties");  
            for(Object key:props.keySet()){  
                System.out.print(key+":");  
                System.out.println(props.get(key));  
            }  
        } catch (IOException e) {  
            System.out.println(e.getMessage());  
        }  

        try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}  
    }  
}  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

以上是关于java读取配置文件常用的四种方式的主要内容,如果未能解决你的问题,请参考以下文章

Java读取xml文件的四种方法

JavaWeb读取资源文件的四种方式

Spring框架中获取连接池常用的四种方式

Java数据结构及算法实战系列002:算法的四种描述方式

XML--Java中的四种常见解析方式--dom

ArrayList去重常用的四种方式及性能对比(JMH性能分析)