com.xiaoleilu.hutool
类 Setting

java.lang.Object
  继承者 java.util.AbstractMap<K,V>
      继承者 java.util.HashMap<String,String>
          继承者 com.xiaoleilu.hutool.Setting
所有已实现的接口:
Serializable, Cloneable, Map<String,String>

public class Setting
extends HashMap<String,String>

设置工具类。 用于支持设置文件
1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取 2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组
若某个key是name,加上分组后的键相当于group.name 3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加# 4、store方法不会保存注释内容,慎重使用

作者:
xiaoleilu
另请参见:
序列化表格

嵌套类摘要
 
从类 java.util.AbstractMap 继承的嵌套类/接口
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
 
字段摘要
static String DEFAULT_CHARSET
          默认字符集
static String DEFAULT_DELIMITER
          数组类型值默认分隔符
 
构造方法摘要
Setting(Charset charset, boolean isUseVariable)
          基本构造
需自定义初始化配置文件
Setting(File configFile, String charset, boolean isUseVariable)
          构造
Setting(String pathBaseClassLoader)
          构造
Setting(String path, Class<?> clazz, String charset, boolean isUseVariable)
          构造,相对于classes读取文件
Setting(String pathBaseClassLoader, String charset, boolean isUseVariable)
          构造,使用相对于Class文件根目录的相对路径
Setting(URL url, String charset, boolean isUseVariable)
          构造
 
方法摘要
 String get(String key, String group)
          获得指定分组的键对应值
 Boolean getBool(String key)
          获取波尔型属性值
 Boolean getBool(String key, String group)
          获取波尔型属性值
 Boolean getBool(String key, String group, Boolean defaultValue)
          获取波尔型型属性值
 Character getChar(String key)
          获取char类型属性值
 Character getChar(String key, String group)
          获取char类型属性值
 Double getDouble(String key)
          获取double类型属性值
 Double getDouble(String key, String group)
          获取double类型属性值
 Double getDouble(String key, String group, Double defaultValue)
          获取double类型属性值
 LinkedList<String> getGroups()
           
 Integer getInt(String key)
          获取数字型型属性值
 Integer getInt(String key, String group)
          获取数字型型属性值
 Integer getInt(String key, String group, Integer defaultValue)
          获取数字型型属性值
 Long getLong(String key)
          获取long类型属性值
 Long getLong(String key, String group)
          获取long类型属性值
 Long getLong(String key, String group, Long defaultValue)
          获取long类型属性值
 String getSettingPath()
           
 String getString(String key)
          获取字符型型属性值
 String getString(String key, String group)
          获取字符型型属性值
 String[] getStrings(String key)
          获得数组型
 String[] getStrings(String key, String group)
          获得数组型
 String[] getStrings(String key, String group, String delimiter)
          获得数组型
 String[] getStringsWithDefault(String key, String[] defaultValue)
          获得数组型
 String getStringWithDefault(String key, String defaultValue)
          获取字符型型属性值
若获得的值为不可见字符,使用默认值
 String getStringWithDefault(String key, String group, String defaultValue)
          获取字符型型属性值
若获得的值为不可见字符,使用默认值
 String getWithLog(String key)
          带有日志提示的get,如果没有定义指定的KEY,则打印debug日志
 boolean init(URL settingUrl, String charset, boolean isUseVariable)
          初始化设定文件
 boolean load(InputStream settingStream, boolean isUseVariable)
          加载设置文件。
 boolean load(URL settingUrl)
          加载设置文件
 void reload()
          重新加载配置文件
 void setSetting(String key, Object value)
          设置值,无给定键创建之。
 void setVarRegex(String regex)
          设置变量的正则
正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示
 void store(String absolutePath)
          持久化当前设置,会覆盖掉之前的设置
持久化会不会保留之前的分组
 void store(String path, Class<?> clazz)
          存储当前设置,会覆盖掉以前的设置
 void toObject(Object object)
          将setting中的键值关系映射到对象中,原理是调用对象对应的set方法
只支持基本类型的转换
 void toObject(String group, Object object)
          将setting中的键值关系映射到对象中,原理是调用对象对应的set方法
只支持基本类型的转换
 
从类 java.util.HashMap 继承的方法
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, put, putAll, remove, size, values
 
从类 java.util.AbstractMap 继承的方法
equals, hashCode, toString
 
从类 java.lang.Object 继承的方法
finalize, getClass, notify, notifyAll, wait, wait, wait
 
从接口 java.util.Map 继承的方法
equals, hashCode
 

字段详细信息

DEFAULT_CHARSET

public static final String DEFAULT_CHARSET
默认字符集

另请参见:
常量字段值

DEFAULT_DELIMITER

public static final String DEFAULT_DELIMITER
数组类型值默认分隔符

另请参见:
常量字段值
构造方法详细信息

Setting

public Setting(Charset charset,
               boolean isUseVariable)
基本构造
需自定义初始化配置文件

参数:
charset - 字符集
isUseVariable - 是否使用变量

Setting

public Setting(String pathBaseClassLoader,
               String charset,
               boolean isUseVariable)
构造,使用相对于Class文件根目录的相对路径

参数:
pathBaseClassLoader - 相对路径(相对于当前项目的classes路径)
charset - 字符集
isUseVariable - 是否使用变量

Setting

public Setting(File configFile,
               String charset,
               boolean isUseVariable)
构造

参数:
configFile - 配置文件对象
charset - 字符集
isUseVariable - 是否使用变量

Setting

public Setting(String path,
               Class<?> clazz,
               String charset,
               boolean isUseVariable)
构造,相对于classes读取文件

参数:
path - 相对路径
clazz - 基准类
charset - 字符集
isUseVariable - 是否使用变量

Setting

public Setting(URL url,
               String charset,
               boolean isUseVariable)
构造

参数:
url - 设定文件的URL
charset - 字符集
isUseVariable - 是否使用变量

Setting

public Setting(String pathBaseClassLoader)
构造

参数:
pathBaseClassLoader - 相对路径(相对于当前项目的classes路径)
方法详细信息

init

public boolean init(URL settingUrl,
                    String charset,
                    boolean isUseVariable)
初始化设定文件

参数:
settingUrl - 设定文件的URL
charset - 字符集
isUseVariable - 是否使用变量
返回:
成功初始化与否

load

public boolean load(URL settingUrl)
加载设置文件

参数:
settingUrl - 配置文件URL
返回:
加载是否成功

reload

public void reload()
重新加载配置文件


load

public boolean load(InputStream settingStream,
                    boolean isUseVariable)
             throws IOException
加载设置文件。 此方法不会关闭流对象

参数:
settingStream - 文件流
isUseVariable - 是否使用变量(替换配置文件值中含有的变量)
返回:
加载成功与否
抛出:
IOException

setVarRegex

public void setVarRegex(String regex)
设置变量的正则
正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示

参数:
regex - 正则

getSettingPath

public String getSettingPath()
返回:
获得设定文件的路径

getWithLog

public String getWithLog(String key)
带有日志提示的get,如果没有定义指定的KEY,则打印debug日志

参数:
key - 键
返回:

get

public String get(String key,
                  String group)
获得指定分组的键对应值

参数:
key - 键
group - 分组
返回:

getString

public String getString(String key)
获取字符型型属性值

参数:
key - 属性名
返回:
属性值

getStringWithDefault

public String getStringWithDefault(String key,
                                   String defaultValue)
获取字符型型属性值
若获得的值为不可见字符,使用默认值

参数:
key - 属性名
defaultValue - 默认值
返回:
属性值

getString

public String getString(String key,
                        String group)
获取字符型型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值

getStringWithDefault

public String getStringWithDefault(String key,
                                   String group,
                                   String defaultValue)
获取字符型型属性值
若获得的值为不可见字符,使用默认值

参数:
key - 属性名
group - 分组名
defaultValue - 默认值
返回:
属性值

getStrings

public String[] getStrings(String key)
获得数组型

参数:
key - 属性名
返回:
属性值

getStringsWithDefault

public String[] getStringsWithDefault(String key,
                                      String[] defaultValue)
获得数组型

参数:
key - 属性名
defaultValue - 默认的值
返回:
属性值

getStrings

public String[] getStrings(String key,
                           String group)
获得数组型

参数:
key - 属性名
group - 分组名
返回:
属性值

getStrings

public String[] getStrings(String key,
                           String group,
                           String delimiter)
获得数组型

参数:
key - 属性名
group - 分组名
delimiter - 分隔符
返回:
属性值

getInt

public Integer getInt(String key)
               throws NumberFormatException
获取数字型型属性值

参数:
key - 属性名
返回:
属性值
抛出:
NumberFormatException

getInt

public Integer getInt(String key,
                      String group)
               throws NumberFormatException
获取数字型型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值
抛出:
NumberFormatException

getInt

public Integer getInt(String key,
                      String group,
                      Integer defaultValue)
获取数字型型属性值

参数:
key - 属性名
group - 分组名
defaultValue - 默认值
返回:
属性值

getBool

public Boolean getBool(String key)
                throws NumberFormatException
获取波尔型属性值

参数:
key - 属性名
返回:
属性值
抛出:
NumberFormatException

getBool

public Boolean getBool(String key,
                       String group)
                throws NumberFormatException
获取波尔型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值
抛出:
NumberFormatException

getBool

public Boolean getBool(String key,
                       String group,
                       Boolean defaultValue)
获取波尔型型属性值

参数:
key - 属性名
group - 分组名
defaultValue - 默认值
返回:
属性值

getLong

public Long getLong(String key)
             throws NumberFormatException
获取long类型属性值

参数:
key - 属性名
返回:
属性值
抛出:
NumberFormatException

getLong

public Long getLong(String key,
                    String group)
             throws NumberFormatException
获取long类型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值
抛出:
NumberFormatException

getLong

public Long getLong(String key,
                    String group,
                    Long defaultValue)
获取long类型属性值

参数:
key - 属性名
group - 分组名
defaultValue - 默认值
返回:
属性值

getChar

public Character getChar(String key)
获取char类型属性值

参数:
key - 属性名
返回:
属性值

getChar

public Character getChar(String key,
                         String group)
获取char类型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值

getDouble

public Double getDouble(String key)
                 throws NumberFormatException
获取double类型属性值

参数:
key - 属性名
返回:
属性值
抛出:
NumberFormatException

getDouble

public Double getDouble(String key,
                        String group)
                 throws NumberFormatException
获取double类型属性值

参数:
key - 属性名
group - 分组名
返回:
属性值
抛出:
NumberFormatException

getDouble

public Double getDouble(String key,
                        String group,
                        Double defaultValue)
获取double类型属性值

参数:
key - 属性名
group - 分组名
defaultValue - 默认值
返回:
属性值

setSetting

public void setSetting(String key,
                       Object value)
设置值,无给定键创建之。设置后未持久化

参数:
key - 键
value - 值

store

public void store(String absolutePath)
持久化当前设置,会覆盖掉之前的设置
持久化会不会保留之前的分组

参数:
absolutePath - 设置文件的绝对路径

store

public void store(String path,
                  Class<?> clazz)
存储当前设置,会覆盖掉以前的设置

参数:
path - 相对路径
clazz - 相对的类

toObject

public void toObject(String group,
                     Object object)
              throws SettingException
将setting中的键值关系映射到对象中,原理是调用对象对应的set方法
只支持基本类型的转换

参数:
object - 被调用的对象
抛出:
SettingException

toObject

public void toObject(Object object)
              throws SettingException
将setting中的键值关系映射到对象中,原理是调用对象对应的set方法
只支持基本类型的转换

参数:
object -
抛出:
SettingException

getGroups

public LinkedList<String> getGroups()
返回:
获得所有分组名


Copyright © 2014. All rights reserved.