本篇博客主要对项目开发过程中涉及的文件内容的转义、系统的属性工具,常用的一些工具类的封装
EscapeUtil:转义和反转义工具类
XmlUtil:XML工具类
HashUtil:Hash算法工具类
SystemPropsUtil:系统属性工具
URLUtil:URL统一资源定位符相关工具类
RuntimeUtil:系统运行时工具类
详情可查询:API 文档
EscapeUtil:转义和反转义工具类
EscapeUtil 工具类主要对一些内容进行转义与反转义,具体传参与返回值可查看接口文档,这里仅总览出常用的功能方法
有关 XML 的特殊字符: XML 的特殊字符
有关 HTML4 的特殊字符 参考 Common lang 3包里的特殊字符
方法 | 功能 | 支持类型 | 原理 |
---|---|---|---|
escapeXml | 转义XML、反转义XML中的特殊字符 | CharSequence | String.replace |
escapeHtml4 | 转义Html4、反转义Html4中的特殊字符 | CharSequence | String.replace |
escape | Escape编码(Unicode),该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码:* @ - _ + . / ,其他所有的字符都会被转义序列替换 | CharSequence | |
safeUnescape | 安全的unescape文本,当文本不是被escape的时候,返回原文 | String | unescape 加了异常处理 |
XmlUtil:XML工具类
XmlUtil:XML 工具类主要完成对 XML 文件的解析与内容读取进行封装,具体传参与返回值可查看接口文档,这里仅总览出常用的功能方法
方法 | 功能 |
---|---|
readXML | 读取解析XML文件 |
readObjectFromXml | 从XML中读取对象 |
createXml | 创建XML文档 |
appendChild | 在已有节点上创建子节点 |
xmlToMap | XML格式字符串转换为Map |
escape | 转义XML特殊字符 |
toStr | 将XML文档转换为String |
createXPath | 创建XPath |
write | 将XML文档写出 |
getRootElement | 根据节点,判断节点是否是 Element 节点 |
disableXXE | 关闭XXE,避免漏洞攻击 |
HashUtil:Hash算法工具类
方法 | 功能 |
---|---|
additiveHash | 加法hash |
bernstein | Bernstein’s hash |
intHash | xxx hash算法(前缀为对应的hash算法名称) |
djbHash | xxx hash算法(前缀为对应的hash算法名称) |
cityHash32 | CityHash算法32-bit实现 |
murmur32 | MurmurHash算法32-bit实现 |
identityHashCode | 根据对象的内存地址生成相应的Hash值 |
SystemPropsUtil:系统属性工具类
其里面主要针对 获取系统的Properties
的一些功能进行封装
方法 | 功能 | 支持功能 | 原理 |
---|---|---|---|
get | 取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 defaultValue / null | String | System.getProperty |
getProps | 获取属性列表Properties | System.getProperties() | |
set | 设置系统属性,value为 null 表示移除此属性 | String | System.setProperty / System.clearProperty |
URLUtil:URL统一资源定位符相关工具类
方法 | 功能 | 支持功能 | 原理 |
---|---|---|---|
url | 将 URI 转换为 URL | String / URI | URI.toURL() |
getStringURI | 获取string协议的URL,类似于string:///xxxxx | CharSequence | String.concat |
isFileURL | 提供的URL是否为文件 | URL | URL.getProtocol() |
getURL | 获得URL | String / File | File.toURI().toURL() |
completeUrl | 补全相对路径 | ||
getPath | 获得path部分 | URI.getPath() | |
encodeBlank | 单独编码URL中的空白符,空白符编码为%20 | ||
getStream | 从URL中获取流 | URL | |
normalize | 标准化URL字符串,包括: | String | |
buildQuery | 将Map形式的Form表单数据转换为Url参数形式,如果key为空(null和"“)会被忽略,如果value为null,会被做为空白符(”") | Map | |
getContentLength | 获取指定URL对应资源的内容长度,对于Http,其长度使用Content-Length头决定 | URL | |
getDataUriBase64 | Data URI Scheme封装,数据格式为Base64 |
RuntimeUtil:系统运行时工具类
其里面主要针对 执行系统命令
的一些功能进行封装
方法 | 功能 | 支持功能 | 原理 |
---|---|---|---|
exec | 执行系统命令,使用系统默认编码 | String… | |
getResult | 获取系统命令执行结果,使用系统默认编码(可指定编码),获取后销毁进程 | Process | io操作 |
getFreeMemory | 获得JVM中剩余的内存数,单位byte | Runtime.getRuntime().xxxxMemory() | |
destroy | 销毁进程 | ||
getProcessorCount | 获得JVM可用的处理器数量(一般为CPU核心数) | Runtime.getRuntime().availableProcessors() | |
addShutdownHook | 增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作 | Runtime.getRuntime().addShutdownHook |