java加载配置文件

package com.xiaoju.products.util;

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

public class PropertyFileUtil {
 
    private static Properties properties = null;
    
    public static synchronized boolean isLoaded(){
    	return properties != null;
    }
    
    /**
     * 初始化读取配置文件,读取的文件列表位于classpath下面的app.properties
     *
     * 多个配置文件会用最后面的覆盖相同属性值
     * @throws IOException  读取属性文件时
     */
    public static void init() {
    	//3读取jar外资源,运行使用
    	String runFile = "app.properties";
    	if (FileUtil.exist(runFile)) {
    		loadProperty(runFile);
    		return;
		}
    	
    	//2读取jar内资源,运行使用
    	InputStream is = PropertyFileUtil.class.getClass().getResourceAsStream("/app.properties");
    	if (null != is) {
    		loadProperty(is);
    		return;
		}
    	
    	//1调试使用
    	String debugFile = "src/main/resources/app.properties";
    	if (FileUtil.exist(debugFile)) {
    		loadProperty(debugFile);
    		return;
		}
    }
    
    
    /**
     * 内部处理
     * @param conf        String fileNames = "app.properties";

     * @throws IOException
     */
    private static void loadProperty(String file) {
    	properties = new Properties();
		try {
			properties.load(new FileInputStream(file));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    
 
    /**
     * 内部处理
     * @param conf        String fileNames = "app.properties";

     * @throws IOException
     */
    private static void loadProperty(InputStream is) {
    	properties = new Properties();
		try {
			properties.load(is);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    
    
    public static String getProperty(String key){
    	return properties.getProperty(key);
    }
}    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值