单例模式读取properties配置文件中的信息

时间:2023-03-08 21:23:43

public class ConfigManager {
    private static ConfigManager config = null;
    //创建Properties文件  读取配置文件中的内容
    Properties p = null;
    
    //1,私有化构造方法
    private  ConfigManager (){
        p = new Properties();
        //通过类加载器加载配置文件--》得到一个输入流
        //反射  ConfigManager.class
        //ConfigManager.class.getClassLoader()  得到类加载器
        //ConfigManager.class.getClassLoader().
        //getResourceAsStream("database.properties");   通过类加载器得到与属性文件相关的输入流
        InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream("database.properties");
        
        //加载输入流   读取文件中的键值对
        try {
            p.load(is);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally {
            if (is!=null) {
                try {
                    is.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
    //2,静态方法
    public static  ConfigManager getInstance(){
        if (config==null) {
            config = new ConfigManager();
        }
        return config;
    }
    /*
     * 根据属性文件的键  得到值
     */
    public String getString(String key){
        return p.getProperty(key);
    }

}