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 LV11
2024年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日
暂无贡献等级

