HuTool工具使用 转义、系统的属性工具等 工具类

本篇博客主要对项目开发过程中涉及的文件内容的转义、系统的属性工具,常用的一些工具类的封装 EscapeUtil:转义和反转义工具类 XmlUtil:XML工具类 HashUtil:Hash算法工具类 SystemPropsUtil:系统属性工具 URLUtil:URL统一资源定位符相关工具类 Run

本篇博客主要对项目开发过程中涉及的文件内容的转义、系统的属性工具,常用的一些工具类的封装

  • EscapeUtil:转义和反转义工具类

  • XmlUtil:XML工具类

  • HashUtil:Hash算法工具类

  • SystemPropsUtil:系统属性工具

  • URLUtil:URL统一资源定位符相关工具类

  • RuntimeUtil:系统运行时工具类

详情可查询:API 文档

EscapeUtil:转义和反转义工具类

EscapeUtil 工具类主要对一些内容进行转义与反转义,具体传参与返回值可查看接口文档,这里仅总览出常用的功能方法

  • 有关 XML 的特殊字符: XML 的特殊字符

  • 有关 HTML4 的特殊字符 参考 Common lang 3包里的特殊字符

方法

功能

支持类型

原理

escapeXml
unescapeXml

转义XML、反转义XML中的特殊字符

CharSequence

String.replace

escapeHtml4
unescapeHtml4

转义Html4、反转义Html4中的特殊字符

CharSequence

String.replace

escape
escapeAll
unescape

Escape编码(Unicode),该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码:* @ - _ + . / ,其他所有的字符都会被转义序列替换
Escape编码(Unicode),该方法不会对 ASCII 字母和数字进行编码。其他所有的字符都会被转义序列替换
Escape解码

CharSequence

safeUnescape

安全的unescape文本,当文本不是被escape的时候,返回原文

String

unescape 加了异常处理

XmlUtil:XML工具类

XmlUtil:XML 工具类主要完成对 XML 文件的解析与内容读取进行封装,具体传参与返回值可查看接口文档,这里仅总览出常用的功能方法

方法

功能

readXML
readBySax
parseXml

读取解析XML文件
使用Sax方式读取指定的XML
将String类型的XML转换为XML文档

readObjectFromXml
writeObjectAsXml

从XML中读取对象
将可序列化的对象转换为XML写入文件

createXml
createDocumentBuilder
createDocumentBuilderFactory

创建XML文档
创建 DocumentBuilder
创建 DocumentBuilderFactory

appendChild
append
appendText
appendMap
appendIterator

在已有节点上创建子节点
追加数据子节点,可以是Map、集合、文本
追加文本子节点
追加Map数据子节点
追加集合节点

xmlToMap
xmlToBean
mapToXmlStr
mapToXml
beanToXml

XML格式字符串转换为Map
XML格式字符串转换为Bean
将Map转换为XML格式的字符串
将Map转换为XML
将Bean转换为XML

escape
unescape

转义XML特殊字符
反转义XML特殊字符

toStr
toFile
format
cleanInvalid
cleanComment

将XML文档转换为String
将XML文档写入到文件
格式化XML输出
去除XML文本中的无效字符
去除XML文本中的注释内容

createXPath
getByXPath
getElementByXPath
getNodeListByXPath
getNodeByXPath

创建XPath
通过XPath方式读取XML节点等信息

write
transform

将XML文档写出

getRootElement
getOwnerDocument
getElements
elementText
transElements
isElement

根据节点,判断节点是否是 Element 节点

disableXXE

关闭XXE,避免漏洞攻击

HashUtil:Hash算法工具类

方法

功能

additiveHash
rotatingHash
oneByOneHash

加法hash
旋转hash
一次一个hash

bernstein
universal
zobrist
fnvHash

Bernstein’s hash
Universal Hashing
Zobrist Hashing
改进的32位FNV算法1

intHash
rsHash
jsHash
pjwHash
elfHash
bkdrHash
sdbmHash

xxx hash算法(前缀为对应的hash算法名称)

djbHash
dekHash
apHash
tianlHash
javaDefaultHash
mixHash
metroHash64
metroHash128
hfHash
hfIpHash

xxx hash算法(前缀为对应的hash算法名称)

cityHash32
cityHash64
cityHash128

CityHash算法32-bit实现
CityHash算法64-bit实现
CityHash算法128-bit实现

murmur32
murmur64
murmur128

MurmurHash算法32-bit实现
MurmurHash算法64-bit实现
MurmurHash算法128-bit实现

identityHashCode

根据对象的内存地址生成相应的Hash值

SystemPropsUtil:系统属性工具类

其里面主要针对 获取系统的Properties 的一些功能进行封装

方法

功能

支持功能

原理

get
getBoolean
getInt
getLong

取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 defaultValue / null
获得boolean类型值
获得int类型值
获得long类型值

String

System.getProperty

getProps

获取属性列表Properties

System.getProperties()

set

设置系统属性,value为 null 表示移除此属性

String

System.setProperty / System.clearProperty

URLUtil:URL统一资源定位符相关工具类

方法

功能

支持功能

原理

url
toURI
toUrlForHttp

将 URI 转换为 URL
转URL为URI
将URL字符串转换为URL对象,并做必要验证

String / URI
String / URL
String

URI.toURL()

getStringURI

获取string协议的URL,类似于string:///xxxxx

CharSequence

String.concat

isFileURL
isJarURL
isJarFileURL

提供的URL是否为文件
提供的URL是否为JAR包
提供的URL是否为Jar文件URL 判断依据为file协议且扩展名为.jar

URL

URL.getProtocol()

getURL
getURLs
getHost

获得URL
获得多个URL( 数组)
获取URL中域名部分,只保留URL中的协议(Protocol)、Host,其它为null

String / File
File
URL

File.toURI().toURL()

completeUrl

补全相对路径

getPath
getDecodedPath

获得path部分
从URL对象中获取不被编码的路径Path

URI.getPath()

encodeBlank
decode

单独编码URL中的空白符,空白符编码为%20
解码URL, 将%开头的16进制表示的内容解码

getStream
getReader
getJarFile

从URL中获取流
从URL中获得Reader
从URL中获取JarFile

URL

normalize

标准化URL字符串,包括:
自动补齐“ http:// ”头
去除开头的\或者/
替换\为/

String

buildQuery

将Map形式的Form表单数据转换为Url参数形式,如果key为空(null和"“)会被忽略,如果value为null,会被做为空白符(”")

Map

getContentLength

获取指定URL对应资源的内容长度,对于Http,其长度使用Content-Length头决定

URL

getDataUriBase64
getDataUri

Data URI Scheme封装,数据格式为Base64
Data URI Scheme封装

RuntimeUtil:系统运行时工具类

其里面主要针对 执行系统命令 的一些功能进行封装

方法

功能

支持功能

原理

exec
execForLines
execForStr

执行系统命令,使用系统默认编码
执行系统命令,使用系统默认编码,执行结果按行区分
执行系统命令,使用传入的 charset 编码

String…

getResult
getResultLines
getErrorResult

获取系统命令执行结果,使用系统默认编码(可指定编码),获取后销毁进程

Process

io操作

getFreeMemory
getTotalMemory
getMaxMemory
getUsableMemory

获得JVM中剩余的内存数,单位byte
获得JVM已经从系统中获取到的总共的内存数,单位byte
获得JVM中可以从系统中获取的最大的内存数,单位byte,以-Xmx参数为准
获得JVM最大可用内存

Runtime.getRuntime().xxxxMemory()

destroy
getPid

销毁进程
获取当前进程ID,首先获取进程名称,读取@前的ID值,如果不存在,则读取进程名的hash值

getProcessorCount

获得JVM可用的处理器数量(一般为CPU核心数)

Runtime.getRuntime().availableProcessors()

addShutdownHook

增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作

Runtime.getRuntime().addShutdownHook

Comment