单例模式读取Properties文件

来源:互联网 发布:简易电路设计软件 编辑:程序博客网 时间:2024/05/17 02:55
其实读取属性文件很简单,也就是几行代码的事,但是最近我做项目是发现多线程并发时会有很多问题,所以自己用单例模式写了一个多线程并发的安全读取类,与大家共享一下,以下是代码 :

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


/**
* 读取Properties属性文件
* @author LYF
*/
public class Env extends Properties {

    private static Env instance;

    public static Env getInstance(String path){
        if (instance != null){
            return instance;
        }else {
            makeInstance(path);
            return instance;
        }
    }

    private static synchronized void makeInstance(String path){
        if (instance == null){
            instance = new Env(path);
        }
    }

    private Env(String path){
        InputStream is = getClass().getResourceAsStream(path);
        try {
            load(is);
        } catch (IOException ex) {
            System.err.println("错误信息:  读取属性文件失败!");
            System.err.println("请确认 【"+ path +"】 文件是否存在。");
        }
    }

}