package org.springside.modules.utils.base; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.io.StringReader; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springside.modules.utils.io.IOUtil; import org.springside.modules.utils.io.URLResourceUtil; import org.springside.modules.utils.number.NumberUtil; /** * 关于Properties的工具类 * * 1. 统一读取Properties * * 2. 从文件或字符串装载Properties * * @author calvin */ public class PropertiesUtil { private static final Logger logger = LoggerFactory.getLogger(PropertiesUtil.class); /////////////////// 读取Properties //////////////////// public static Boolean getBoolean(Properties p, String name, Boolean defaultValue) { return BooleanUtil.toBooleanObject(p.getProperty(name), defaultValue); } public static Integer getInt(Properties p, String name, Integer defaultValue) { return NumberUtil.toIntObject(p.getProperty(name), defaultValue); } public static Long getLong(Properties p, String name, Long defaultValue) { return NumberUtil.toLongObject(p.getProperty(name), defaultValue); } public static Double getDouble(Properties p, String name, Double defaultValue) { return NumberUtil.toDoubleObject(p.getProperty(name), defaultValue); } public static String getString(Properties p, String name, String defaultValue) { return p.getProperty(name, defaultValue); } /////////// 加载Properties//////// /** * 从文件路径加载properties. * * 路径支持从外部文件或resources文件加载, "file://"或无前缀代表外部文件, "classpath://"代表resources, */ public static Properties loadFromFile(String generalPath) { Properties p = new Properties(); InputStream is = null; try { is = URLResourceUtil.asStream(generalPath); p.load(is); } catch (IOException e) { logger.warn("Load property from " + generalPath + " fail ", e); } finally { IOUtil.closeQuietly(is); } return p; } /** * 从字符串内容加载Properties */ public static Properties loadFromString(String content) { Properties p = new Properties(); Reader reader = new StringReader(content); try { p.load(reader); } catch (IOException ignored) { } finally { IOUtil.closeQuietly(reader); } return p; } }