在青铜时代群里看到读者朋友们在讨论 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(),强制创建目录,包括任何必需但不存在的父目录。

Java开源nas java开源库_数组

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 指定的属性值。