首页>代码>java常用工具类iceroot开源类库>/iceroot/src/main/java/com/icexxx/util/IceConfigUtil.java
package com.icexxx.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
 * 配置文件工具类
 * @author IceWater
 * @date 2017-02-24
 * @version 1.0
 */
public class IceConfigUtil {
	/**
	 * 根据配置文件获取Properties
	 * @param fileName 配置文件的名称
	 * @return 获取的配置文件中的值
	 */
	public static Properties conf(String fileName) {
		fileName = reset(fileName);
		InputStream resourceAsStream = IceConfigUtil.class.getClassLoader().getResourceAsStream(fileName);
		BufferedReader bufferedReader = null;
		try {
			bufferedReader = new BufferedReader(new InputStreamReader(resourceAsStream, "UTF-8"));
		} catch (UnsupportedEncodingException e1) {
			e1.printStackTrace();
		}
		Properties properties = new Properties();
		try {
			properties.load(bufferedReader);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return properties;
	}

	private static String reset(String fileName) {
		if (fileName == null) {
			return ".";
		}
		int lastIndexOf = fileName.lastIndexOf("/");
		if (lastIndexOf == -1) {
			if (fileName.lastIndexOf(".") == -1) {
				return fileName + ".properties";
			}
		} else {
			int indexOf = fileName.indexOf(".", lastIndexOf + 1);
			if (indexOf == -1) {
				return fileName + ".properties";
			}
		}
		return fileName;
	}
    /**
     * 根据配置文件获取Boolean类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @return 获取到的参数的值
     */
	public static Boolean getBoolean(String configFileName, String key) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key);
		return convertBoolean(value);
	}
    /**
     * 根据配置文件获取Boolean类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @param defaultValue 当配置文件中找不到需要的值时使用的默认值
     * @return 获取到的参数的值
     */
	public static Boolean getBoolean(String configFileName, String key, String defaultValue) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key, defaultValue);
		return convertBoolean(value);
	}
    /**
     * 根据配置文件获取String类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @return 获取到的参数的值
     */
	public static String getString(String configFileName, String key) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key);
		return value;
	}
    /**
     * 根据配置文件获取String类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @param defaultValue 从给定的配置文件中找不到需要的参数时使用的默认值
     * @return 获取到的参数的值
     */
	public static String getString(String configFileName, String key, String defaultValue) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key, defaultValue);
		return value;
	}
    /**
     * 根据配置文件获取int类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @return 从配置文件中获取的参数的值
     */
	public static Integer getInt(String configFileName, String key) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key);
		try {
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			return null;
		}
	}
    /**
     * 根据配置文件获取int类型的值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @param defaultValue 从给定的配置文件中找不到需要的参数时使用的默认值
     * @return 从配置文件中获取的参数的值
     */
	public static Integer getInt(String configFileName, String key, int defaultValue) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key, defaultValue + "");
		try {
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			return defaultValue;
		}
	}
    /**
     * 从配置文件中获取多个参数值
     * @param configFileName 配置文件的名称
     * @param key 配置文件的参数名称
     * @return 从配置文件中获取的参数的值组成的List
     */
	public static List<String> getList(String configFileName, String key) {
		Properties conf = conf(configFileName);
		String value = conf.getProperty(key);
		if (value == null || "".equals(value.trim())) {
			return null;
		}
		String[] split = value.split(",");
		List<String> list = new ArrayList<String>();
		for (int i = 0; i < split.length; i++) {
			String str = split[i];
			list.add(str.trim());
		}
		return list;
	}

	private static Boolean convertBoolean(String value) {
		if (value == null || "".equals(value.trim())) {
			return null;
		} else if ("true".equalsIgnoreCase(value)) {
			return true;
		} else if ("false".equalsIgnoreCase(value)) {
			return false;
		} else if ("yes".equalsIgnoreCase(value)) {
			return true;
		} else if ("no".equalsIgnoreCase(value)) {
			return false;
		} else if ("show".equalsIgnoreCase(value)) {
			return true;
		} else if ("hide".equalsIgnoreCase(value)) {
			return false;
		} else if ("on".equalsIgnoreCase(value)) {
			return true;
		} else if ("off".equalsIgnoreCase(value)) {
			return false;
		} else if ("y".equalsIgnoreCase(value)) {
			return true;
		} else if ("n".equalsIgnoreCase(value)) {
			return false;
		}
		return null;
	}
}
最近下载更多
TE6688  LV24 2017年6月27日
1040287230  LV4 2017年5月10日
zyl  LV34 2017年5月10日
kong.yee  LV40 2017年5月6日
xdd211414  LV17 2017年5月5日
zhljava  LV2 2017年5月5日
aihui523  LV34 2017年5月5日
海盗来了  LV20 2017年5月5日
最代码官方  LV168 2017年5月4日
最近浏览更多
3334004690  LV10 5月28日
1358849392  LV21 2022年11月11日
crosa_Don  LV18 2022年3月31日
zuidaima_liuzg  LV1 2021年5月13日
叽哩咕噜  LV2 2020年12月24日
dongzhan  LV12 2020年12月9日
wkc  LV21 2020年7月26日
Gyq灬ming  LV11 2019年11月30日
小资李  LV13 2019年9月17日
497100512 2019年4月27日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友