All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiaoleilu.hutool.setting.Setting Maven / Gradle / Ivy

package com.xiaoleilu.hutool.setting;

import java.io.File;
import java.net.URL;
import java.nio.charset.Charset;

import com.xiaoleilu.hutool.setting.dialect.BasicSetting;

/**
 * 设置工具类。 用于支持设置文件
* 1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取 * 2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组
* 若某个key是name,加上分组后的键相当于group.name * 3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加# * 4、store方法不会保存注释内容,慎重使用 * @author xiaoleilu * */ public class Setting extends BasicSetting { private static final long serialVersionUID = 6473518262551553107L; /** * 基本构造
* 需自定义初始化配置文件
*/ public Setting() { super(); } /** * 构造,使用相对于Class文件根目录的相对路径 * * @param pathBaseClassLoader 相对路径(相对于当前项目的classes路径) * @param charset 字符集 * @param isUseVariable 是否使用变量 */ public Setting(String pathBaseClassLoader, Charset charset, boolean isUseVariable) { super(pathBaseClassLoader, charset, isUseVariable); } /** * 构造,使用相对于Class文件根目录的相对路径 * * @param pathBaseClassLoader 相对路径(相对于当前项目的classes路径) * @param isUseVariable 是否使用变量 */ public Setting(String pathBaseClassLoader, boolean isUseVariable) { super(pathBaseClassLoader, DEFAULT_CHARSET, isUseVariable); } /** * 构造 * * @param configFile 配置文件对象 * @param charset 字符集 * @param isUseVariable 是否使用变量 */ public Setting(File configFile, Charset charset, boolean isUseVariable) { super(configFile, charset, isUseVariable); } /** * 构造,相对于classes读取文件 * * @param path 相对路径 * @param clazz 基准类 * @param charset 字符集 * @param isUseVariable 是否使用变量 */ public Setting(String path, Class clazz, Charset charset, boolean isUseVariable) { super(path, clazz, charset, isUseVariable); } /** * 构造 * * @param url 设定文件的URL * @param charset 字符集 * @param isUseVariable 是否使用变量 */ public Setting(URL url, Charset charset, boolean isUseVariable) { super(url, charset, isUseVariable); } /** * 构造 * @param pathBaseClassLoader 相对路径(相对于当前项目的classes路径) */ public Setting(String pathBaseClassLoader) { super(pathBaseClassLoader); } /*--------------------------公有方法 start-------------------------------*/ /** * 获得group对应的子Setting * @param group 分组 * @return {@link Setting} */ @Override public Setting getSetting(String group){ final Setting setting = new Setting(); setting.putAll(this.getMap(group)); return setting; } @Override public Setting set(String key, String group, Object value) { return (Setting) super.set(key, group, value); } @Override public Setting set(String key, Object value) { return (Setting) super.set(key, value); } /*--------------------------公有方法 end-------------------------------*/ }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy