现在的位置: 首页 > 综合 > 正文

java 读取配置文件(一)

2013年04月04日 ⁄ 综合 ⁄ 共 1733字 ⁄ 字号 评论关闭
package com.xxx.config;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import org.apache.log4j.Logger;

/**
 * 读配置集成类<br>
 * @author
 */
public class Configs {
    static Logger log = Logger.getLogger(Configs.class.getName());
    
    private Properties props = null;

    protected void init(String file) {
    	this.init(file, props);
    }

    protected void init(String file, Properties defaul) {
        File f = new File(file);
        if (f.exists()) {
            FileInputStream fis = null;
            try
            {
                fis = new FileInputStream(f);
            }
            catch(FileNotFoundException e2)
            {
                e2.printStackTrace();
                throw new ConfigException(e2);
            }
            props = new Properties(defaul);
            try
            {
                props.load(fis);
                fis.close();
            }
            catch(IOException e)
            {
                e.printStackTrace();
                throw new ConfigException(e);
            }
        } else {
        	System.out.println(file + "配置文件没有找到!");
            throw new ConfigException(file + "配置文件没有找到!");
        }
    }

    /**
     * 得到包含配置信息的Properties对象
     * @return Properties对象
     */
    public Properties getConfigProperty() {
        return props;
    }

    /**
     * 根据配置节点名得到配置值
     * @param key 配置节点名
     * @param defaul 默认值
     * @param islog 是否写日志。如果为true且返回的配置值为null,则写日志
     * @return 如果有配置值,则返回配置值,否则返回默认值
     */
    public String getConfig(String key, String defaul, boolean isLog) {
        String keyVal = props.getProperty(key);
    	if (keyVal == null && isLog) {
    	    log.error("配置文件中没有名为:" + key + "的KEY值!");
    	}
        if (keyVal == null) {
        	keyVal = defaul;
        }
        if (keyVal != null && keyVal.endsWith("\""))
            keyVal = keyVal.replaceAll("\"", "");
        return keyVal;
    }

    /**
     * 根据配置节点名得到配置值
     * @param key 配置节点名
     * @param defaul 默认值
     * @return 如果有配置值,则返回配置值,否则返回默认值
     */
    public String getConfig(String key, String defaul) {
        return getConfig(key, defaul, false);
    }

    /**
     * 根据配置节点名得到配置值
     * @param key 配置节点名
     * @return 配置值
     */
    public String getConfig(String key) {
        return getConfig(key, null, false);
    }

    /**
     * 根据配置节点名得到配置值
     * @param key 配置节点名
     * @param islog 是否写日志。如果为true且返回的配置值为null,则写日志
     * @return 配置值
     */
    public String getConfig(String key, boolean islog) {
        return getConfig(key, null, islog);
    }

}










抱歉!评论已关闭.