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; } }
最近下载更多
最近浏览更多
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日
暂无贡献等级