在青铜时代群里看到读者朋友们在讨论 Java 最常用的工具类,我觉得大家推荐的确实都挺常见的,我自己用的频率也蛮高的。恰好我在 programcreek 上看到过一篇类似的文章,就想着梳理一下分享给大家。
在 Java 中,工具类通常用来定义一组执行通用操作的方法。本篇文章将会向大家展示 8 个工具类以及它们最常用的方法,类的排名和方法的排名均来自可靠的数据,从 GitHub 上最受欢迎的 50000 个开源 Java 项目中精心挑选。
为了方便大家的理解,我会在介绍每个类的方法时写一段小 Demo,这样大家就能知道每个方法该怎么用。放心吧,方法是干嘛的我也不会保密的。
1)IOUtils
org.apache.commons.io.IOUtils,操作 IO 流的工具类,下面是其常用的方法。
closeQuietly(),关闭 IO 流,并且忽略 null 值和异常。
copy(),将字节从输入流复制到输出流。
toByteArray(),以 byte[] 的形式获取输入流中的内容。
write(),将字符或者字节写入输出流中。
toInputStream(),将指定的字符转成输入流。
readLines(),从输入流中一行一行地读取,并按照指定的字符编码返回字符串列表。
copyLarge(),从输入流中复制内容到输出流,超过 2GB。
readFully(),把输入流中的内容读入到字节数组中。
2)FileUtils
org.apache.commons.io.FileUtils,操作文件或者目录的工具类,下面是其常用的方法。
deleteDirectory(),删除目录。
readFileToString(),把文件的内容读入到字符串中。
deleteQuietly(),删除文件,但不抛出异常。
copyFile(),把文件复制到一个新的位置。
writeStringToFile(),把字符串写入到文件。
forceMkdir(),强制创建目录,包括任何必需但不存在的父目录。
write(),把字符或者字节写入到文件。
listFiles(),列出指定目录下的所有文件。
copyDirectory(),将目录下的所有子目录及文件复制到新的目录。
forceDelete(),强制删除文件或者目录及其所有子目录和文件。
3)StringUtils
org.apache.commons.lang3.StringUtils,操作字符串的工具类,并且是 null 安全的,下面是其常用的方法。
isBlank(),检查字符是否为空字符串””,或者 null,或者空格。
检查结果如下所示。
isNotBlank(),与 isBlank() 检查的结果相反。
isEmpty(),检查字符是否为空字符串””,或者 null;和 isBlank() 不同,不包括空格的检查。
检查结果如下所示。
isNotEmpty(),与 isEmpty() 检查的结果相反。
join(),将多个元素连接成一个字符串。
equals(),比较两个字符序列是否相等。
split(),把字符串拆分为数组,拆分符为空白字符。
replace(),替换另一个字符串中所有出现的字符串。
4)FilenameUtils
org.apache.commons.io.FilenameUtils,操作文件名或者路径的工具类,下面是其常用的方法。
getExtension(),获取文件的扩展名。
getBaseName(),获取单纯的文件名或者路径名,文件时去掉路径和扩展名;路径时去掉父级路径。
getName(),如果是文件时,获取文件名和后缀,去掉路径;如果是路径时,去掉父级路径。
concat(),将路径和文件名连接在一起。
wildcardMatch(),检查文件名是否匹配指定的格式。
separatorsToUnix(),将所有分隔符转换为正斜杠的 Unix 分隔符。
getFullPath(),获取文件的完整路径。
5)ArrayUtils
org.apache.commons.lang3.ArrayUtils,操作数组的工具类,下面是其常用的方法。
contains(),检查数组中是否包含某个值。
addAll(),将所有元素添加到一个数组中。
clone(),浅拷贝一个数组。
isEmpty(),检查数组是否为 null 或者没有元素。
add(),在数组中添加一个新的元素,原数组不变。
subarray(),根据起始下标和结束下标截取一个子数组。
indexOf(),找出指定数组的下标。
6)DigestUtils
org.apache.commons.codec.digest.DigestUtils,加密的工具类,下面是其常用的方法。
md5Hex(),计算字符串的 MD5 摘要,并返回 32 位的十六进制字符。
md5(),计算字符串的 MD5 摘要,并返回 16 个元素的字节数组。
7)StringEscapeUtils
org.apache.commons.text.StringEscapeUtils,字符串的转义和反转义工具类,下面是其常用的方法。
unescapeHtml4(),反转义 HTML。
escapeHtml4(),转义 HTML。
escapeJava(),转义 Java。
unescapeJava()
8)BeanUtils
大多数 Java 开发人员习惯于创建 getter/setter 的JavaBean,然后通过调用相应的 getXxx 和 setXxx 方法访问对应字段。但在某些情况下,需要动态访问 Java 对象的属性,org.apache.commons.beanutils.BeanUtils 就派上用场了。
copyProperties(),拷贝所有属性
其中 UserDTO 类的源码如下所示。
其中 EUser 类的源码如下所示。
其中 DateStringConverter 类的源码如下所示。
getProperty(),返回 bean 指定的属性值。
setProperty(),设置 bean 指定的属性值。