https://img/18-2-27-29152641.jpg

在 Java 生态中,工具类封装了大量常用且通用的方法,能够显著提升开发效率,避免重复编写基础功能。本文基于对 GitHub
上数万个开源项目的分析,整理了使用频率最高、覆盖面最广的 16 个 Java 工具类及其核心方法。

  1. org.apache.commons.io.IOUtils
    提供一系列安全的 IO 操作方法,尤其适合处理流资源的关闭与转换。

text
closeQuietly:安静关闭流或套接字,不抛出异常
toString:将输入流、字节数组等转为字符串
copy:在输入流与输出流之间复制数据(最大 2GB)
toByteArray:从流或 URI 获取字节数组
write:将字节或字符写入输出流
readLines:按行读取输入流,返回字符串列表
lineIterator:返回逐行读取的迭代器

  1. org.apache.commons.io.FileUtils
    封装文件与目录的常见操作,如读写、复制、删除等。

text
deleteDirectory:递归删除目录
readFileToString:读取文件内容为字符串
deleteQuietly:静默删除文件或目录
copyFile:复制单个文件
writeStringToFile:将字符串写入文件,自动创建目录
forceMkdir:强制创建目录(包括父目录)
listFiles:根据过滤器列出目录下文件

  1. org.apache.commons.lang.StringUtils
    提供健壮且易用的字符串处理功能,避免空指针异常。

text
isBlank:检查字符串是否为空(trim 后判断)
isEmpty:检查是否为空(不 trim)
equals:安全比较两个字符串
join:将数组或集合拼接为带分隔符的字符串
split:按分隔符拆分字符串
replace:替换字符串中的子串
trimToNull:若 trim 后为空则返回 null

  1. org.apache.http.util.EntityUtils
    用于处理 HTTP 响应中的 Entity 对象,方便内容提取与消费。

text
toString:将 Entity 内容转为字符串
consume:确保 Entity 内容被完全读取
toByteArray:将 Entity 转为字节数组
consumeQuietly:静默消费内容,不抛异常
getContentCharset:获取内容编码

  1. org.apache.commons.lang3.StringUtils
    与 commons-lang 中的 StringUtils 类似,属于新一代版本,功能更丰富。

text
capitalize:将首字母转为大写
isBlank / isEmpty / equals / join / split / replace 等方法均提供

  1. org.apache.commons.io.FilenameUtils
    专注于文件名与路径的处理,支持跨平台路径格式化。

text
getExtension:获取文件扩展名
getBaseName:获取不含扩展名的文件名
getName:获取完整文件名
concat:拼接路径(遵循命令行风格)
normalize:规范化路径格式
wildcardMatch:使用通配符匹配路径

  1. org.springframework.util.StringUtils
    Spring 框架自带的字符串工具,与 Spring 生态无缝集成。

text
hasText:判断字符串是否包含非空白文本
hasLength:判断字符串长度是否大于 0
commaDelimitedStringToArray:按逗号分割字符串为数组
collectionToDelimitedString:将集合转为分隔符连接的字符串
uncapitalize:首字母转为小写
tokenizeToStringArray:分割字符串并自动去除空白项

  1. org.apache.commons.lang.ArrayUtils
    提供数组的常用操作,如查找、添加、截取等。

text
contains:判断数组是否包含某元素
addAll:合并多个数组
clone:克隆数组
isEmpty:判断是否为空数组
subarray:截取子数组
indexOf:查找元素下标

  1. org.apache.commons.lang.StringEscapeUtils
    用于字符串的转义与反转义,如 HTML、XML、JSON 等格式(注意:已标记为过时,建议使用 commons-text 中的类)。

  2. org.apache.http.client.utils.URLEncodedUtils
    处理 URL 编码与解码,常用于构建 HTTP 请求参数。

text
format:将参数列表格式化为 application/x-www-form-urlencoded 字符串
parse:将字符串或 URI 解析为参数对列表

  1. org.apache.commons.codec.digest.DigestUtils
    提供常见的哈希算法工具方法,如 MD5、SHA 系列等。

text
md5Hex / sha1Hex / sha256Hex / sha512Hex:返回十六进制哈希字符串
md5:返回 16 位 MD5 哈希值

  1. org.apache.commons.collections.CollectionUtils
    集合操作工具类,支持筛选、转换、过滤等函数式风格操作。

text
isEmpty:判断集合是否为空
select / filter:按条件筛选元素
transform:对集合中每个元素进行转换
find:查找符合条件的元素
isEqualCollection:判断两个集合内容是否一致

  1. org.apache.commons.lang3.ArrayUtils
    与 commons-lang 中的 ArrayUtils 功能相似,属于 lang3 版本。

  2. org.apache.commons.beanutils.PropertyUtils
    用于动态访问和操作 JavaBean 属性,支持嵌套属性。

text
getProperty / setProperty:获取和设置属性值
getPropertyDescriptor:获取属性描述符
copyProperties:复制属性到另一个对象
isReadable / isWriteable:判断属性是否可读/可写

  1. org.apache.commons.lang3.StringEscapeUtils
    新版转义工具类,支持 HTML、XML、JSON、Java Unicode 等格式的转义与反转义。

  2. org.apache.commons.beanutils.BeanUtils
    简化 JavaBean 的操作,常用于对象属性复制与 Map 转换。

text
copyProperties:批量复制属性
populate:使用 Map 键值对填充 Bean 属性
cloneBean:克隆 Bean 实例
掌握这些工具类能够覆盖绝大多数日常开发场景,显著减少自行编写底层代码的需求。需要注意的是,根据《阿里巴巴 Java
开发手册》,工具类命名推荐使用单数形式,如 XxxUtils。