最受欢迎的 Java 实用工具类盘点
https://img/18-2-27-29152641.jpg
在 Java 生态中,工具类封装了大量常用且通用的方法,能够显著提升开发效率,避免重复编写基础功能。本文基于对 GitHub
上数万个开源项目的分析,整理了使用频率最高、覆盖面最广的 16 个 Java 工具类及其核心方法。
- org.apache.commons.io.IOUtils
提供一系列安全的 IO 操作方法,尤其适合处理流资源的关闭与转换。
text
closeQuietly:安静关闭流或套接字,不抛出异常
toString:将输入流、字节数组等转为字符串
copy:在输入流与输出流之间复制数据(最大 2GB)
toByteArray:从流或 URI 获取字节数组
write:将字节或字符写入输出流
readLines:按行读取输入流,返回字符串列表
lineIterator:返回逐行读取的迭代器
- org.apache.commons.io.FileUtils
封装文件与目录的常见操作,如读写、复制、删除等。
text
deleteDirectory:递归删除目录
readFileToString:读取文件内容为字符串
deleteQuietly:静默删除文件或目录
copyFile:复制单个文件
writeStringToFile:将字符串写入文件,自动创建目录
forceMkdir:强制创建目录(包括父目录)
listFiles:根据过滤器列出目录下文件
- org.apache.commons.lang.StringUtils
提供健壮且易用的字符串处理功能,避免空指针异常。
text
isBlank:检查字符串是否为空(trim 后判断)
isEmpty:检查是否为空(不 trim)
equals:安全比较两个字符串
join:将数组或集合拼接为带分隔符的字符串
split:按分隔符拆分字符串
replace:替换字符串中的子串
trimToNull:若 trim 后为空则返回 null
- org.apache.http.util.EntityUtils
用于处理 HTTP 响应中的 Entity 对象,方便内容提取与消费。
text
toString:将 Entity 内容转为字符串
consume:确保 Entity 内容被完全读取
toByteArray:将 Entity 转为字节数组
consumeQuietly:静默消费内容,不抛异常
getContentCharset:获取内容编码
- org.apache.commons.lang3.StringUtils
与 commons-lang 中的 StringUtils 类似,属于新一代版本,功能更丰富。
text
capitalize:将首字母转为大写
isBlank / isEmpty / equals / join / split / replace 等方法均提供
- org.apache.commons.io.FilenameUtils
专注于文件名与路径的处理,支持跨平台路径格式化。
text
getExtension:获取文件扩展名
getBaseName:获取不含扩展名的文件名
getName:获取完整文件名
concat:拼接路径(遵循命令行风格)
normalize:规范化路径格式
wildcardMatch:使用通配符匹配路径
- org.springframework.util.StringUtils
Spring 框架自带的字符串工具,与 Spring 生态无缝集成。
text
hasText:判断字符串是否包含非空白文本
hasLength:判断字符串长度是否大于 0
commaDelimitedStringToArray:按逗号分割字符串为数组
collectionToDelimitedString:将集合转为分隔符连接的字符串
uncapitalize:首字母转为小写
tokenizeToStringArray:分割字符串并自动去除空白项
- org.apache.commons.lang.ArrayUtils
提供数组的常用操作,如查找、添加、截取等。
text
contains:判断数组是否包含某元素
addAll:合并多个数组
clone:克隆数组
isEmpty:判断是否为空数组
subarray:截取子数组
indexOf:查找元素下标
org.apache.commons.lang.StringEscapeUtils
用于字符串的转义与反转义,如 HTML、XML、JSON 等格式(注意:已标记为过时,建议使用 commons-text 中的类)。org.apache.http.client.utils.URLEncodedUtils
处理 URL 编码与解码,常用于构建 HTTP 请求参数。
text
format:将参数列表格式化为 application/x-www-form-urlencoded 字符串
parse:将字符串或 URI 解析为参数对列表
- org.apache.commons.codec.digest.DigestUtils
提供常见的哈希算法工具方法,如 MD5、SHA 系列等。
text
md5Hex / sha1Hex / sha256Hex / sha512Hex:返回十六进制哈希字符串
md5:返回 16 位 MD5 哈希值
- org.apache.commons.collections.CollectionUtils
集合操作工具类,支持筛选、转换、过滤等函数式风格操作。
text
isEmpty:判断集合是否为空
select / filter:按条件筛选元素
transform:对集合中每个元素进行转换
find:查找符合条件的元素
isEqualCollection:判断两个集合内容是否一致
org.apache.commons.lang3.ArrayUtils
与 commons-lang 中的 ArrayUtils 功能相似,属于 lang3 版本。org.apache.commons.beanutils.PropertyUtils
用于动态访问和操作 JavaBean 属性,支持嵌套属性。
text
getProperty / setProperty:获取和设置属性值
getPropertyDescriptor:获取属性描述符
copyProperties:复制属性到另一个对象
isReadable / isWriteable:判断属性是否可读/可写
org.apache.commons.lang3.StringEscapeUtils
新版转义工具类,支持 HTML、XML、JSON、Java Unicode 等格式的转义与反转义。org.apache.commons.beanutils.BeanUtils
简化 JavaBean 的操作,常用于对象属性复制与 Map 转换。
text
copyProperties:批量复制属性
populate:使用 Map 键值对填充 Bean 属性
cloneBean:克隆 Bean 实例
掌握这些工具类能够覆盖绝大多数日常开发场景,显著减少自行编写底层代码的需求。需要注意的是,根据《阿里巴巴 Java
开发手册》,工具类命名推荐使用单数形式,如 XxxUtils。
