All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.weicoder.common.config.Config Maven / Gradle / Ivy

package com.weicoder.common.config;

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

import com.weicoder.common.U;
import com.weicoder.common.U.R;
import com.weicoder.common.W;
import com.weicoder.common.constants.ArrayConstants;
import com.weicoder.common.constants.StringConstants;
import com.weicoder.common.lang.Lists; 
import com.weicoder.common.util.StringUtil;

/**
 * 读取配置类
 * 
 * @author WD
 */
public final class Config {
	// Properties配置
	private Properties ps;

	/**
	 * 构造参数
	 * 
	 * @param fileName 文件名 可以已,分割
	 */
	public Config(String fileName) {
		// 声明Properties
		ps = new Properties();
		// 循环加载文件
//		for (String name : StringUtil.split(fileName, StringConstants.COMMA)) {
		try (InputStream in = R.loadResource(fileName)) {
			// 有配置文件加载
			if (in != null) {
				ps.load(in);
//				System.getProperties().putAll(ps);
			}
		} catch (IOException e) {
		}
//		}
	}

	/**
	 * 构造参数
	 * 
	 * @param ps
	 */
	public Config(Properties ps) {
		this.ps = ps;
	}

	/**
	 * 获取属性配置
	 * 
	 * @return
	 */
	public Properties getProperties() {
		return ps;
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public List getList(String key, List defaultValue) {
		return Lists.newList(getStringArray(key,
				U.E.isEmpty(defaultValue) ? ArrayConstants.STRING_EMPTY : Lists.toArray(defaultValue)));
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key 属性key
	 * @return     value
	 */
	public String[] getStringArray(String key) {
		return getStringArray(key, ArrayConstants.STRING_EMPTY);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public String[] getStringArray(String key, String[] defaultValue) {
		// 获得字符串
		String s = getString(key);
		// 如果为空返回默认值 不为空以,拆分
		if (U.E.isEmpty(s))
			return defaultValue;
		else
			return s.split(StringConstants.COMMA);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key 属性key
	 * @return     value
	 */
	public String getString(String key) {
		return getString(key, StringConstants.EMPTY);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public String getString(String key, String defaultValue) {
		return StringUtil.trim(ps.getProperty(key, defaultValue));
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public boolean getBoolean(String key, boolean defaultValue) {
		return W.C.toBoolean(getString(key), defaultValue);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key 属性key
	 * @return     value
	 */
	public int getInt(String key) {
		return getInt(key, 0);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public int getInt(String key, int defaultValue) {
		return W.C.toInt(getString(key), defaultValue);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key 属性key
	 * @return     value
	 */
	public byte getByte(String key) {
		return getByte(key, Byte.parseByte("0"));
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public byte getByte(String key, byte defaultValue) {
		return W.C.toByte(getString(key), defaultValue);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public long getLong(String key, long defaultValue) {
		return W.C.toLong(getString(key), defaultValue);
	}

	/**
	 * 获得属性value
	 * 
	 * @param  key          属性key
	 * @param  defaultValue 默认值
	 * @return              value
	 */
	public short getShort(String key, short defaultValue) {
		return W.C.toShort(getString(key), defaultValue);
	}

	/**
	 * 检查键是否存在
	 * 
	 * @param  key 键
	 * @return     是否存在值
	 */
	public boolean exists(String key) {
		return ps.containsKey(key);
	}

	@Override
	public String toString() {
		return "Config [ps=" + ps + "]";
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy