Hutool工具类

最新依赖

<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.2.4</version>
</dependency>

简介
Hutool是Hu + tool的自造词,前者致敬我的“前任公司”,后者为工具之意,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。推荐阅读:
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。(抄自作者简介)
功能
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
模块
介绍
hutool-aop
JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter
布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache
简单缓存实现
hutool-core
核心,包括Bean操作、日期、各种Util等
hutool-cron
定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto
加密解密模块,提供对称、非对称和摘要算法封装
hutool-db
JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa
基于DFA模型的多关键字查找
hutool-extra
扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http
基于HttpUrlConnection的Http客户端封装
hutool-log
自动识别日志实现的日志门面
hutool-script
脚本执行封装,例如Javascript
hutool-setting
功能更强大的Setting配置文件和Properties封装
hutool-system
系统参数调用封装(JVM信息等)
hutool-json
JSON实现
hutool-captcha
图片验证码实现
hutool-poi
针对POI中Excel的封装
hutool-socket
基于Java的NIO和AIO的Socket封装
可以根据需求对每个模块单独引入,也可以通过引入hutool-all方式引入所有模块。
安装
Maven
在项目的pom.xml的dependencies中加入以下内容:

cn.hutool
hutool-all
5.2.4
Copy to clipboardErrorCopied
Gradle
compile 'cn.hutool:hutool-all:5.2.4’Copy to clipboardErrorCopied
非Maven项目
点击以下任一链接,下载hutool-all-X.X.X.jar即可:
• Maven中央库1
• Maven中央库2
注意 Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类获工具方法可用。 如果你的项目使用JDK7,请使用Hutool 4.x版本
功能是真心强大可以查看其官方文档
https://www.hutool.cn/
https://github.com/looly/hutool
具体功能如下:(都是官方提供的.只是搬过来记录.)
• 核心(Hutool-core)
• 克隆
• 支持泛型的克隆接口和克隆类
• 类型转换
• 类型转换工具类-Convert
• 类型转换工具类-Convert
• 痛点
• Convert类
• 自定义类型转换-ConverterRegistry
• 日期时间
• 概述
• 日期时间工具-DateUtil
• 日期时间对象-DateTime
• IO流相关
• 概述
• IO工具类-IoUtil
• 文件工具类-FileUtil
• 文件类型判断-FileTypeUtil
• 文件读取-FileReader
• 文件写入-FileWriter
• 文件监听-WatchMonitor
• ClassPath资源访问-ClassPathResource
• 工具类
• 概述
• 字符串工具-StrUtil
• 16进制工具-HexUtil
• Escape工具-EscapeUtil
• Hash算法-HashUtil
• URL工具-URLUtil
• XML工具-XmlUtil
• 对象工具-ObjectUtil
• 反射工具-ReflectUtil
• 泛型类型工具-TypeUtil
• 分页工具-PageUtil
• 剪贴板工具-ClipboardUtil
• 类工具-ClassUtil
• 类加载工具-ClassLoaderUtil
• 枚举工具-EnumUtil
• 命令行工具-RuntimeUtil
• 数字工具-NumberUtil
• 数组工具-ArrayUtil
• 随机工具-RandomUtil
• 唯一ID工具-IdUtil
• 压缩工具-ZipUtil
• 引用工具-ReferenceUtil
• 正则工具-ReUtil
• 身份证工具-IdcardUtil
• 语言特性
• 概述
• HashMap扩展-Dict
• 单例工具-Singleton
• 断言-Assert
• 二进码十进数-BCD
• 控制台打印封装-Console
• 字段验证器-Validator
• 字符串格式化-StrFormatter
• JavaBean
• 概述
• Bean工具-BeanUtil
• DynaBean
• 表达式解析-BeanPath
• 集合类
• 概述
• 集合工具-CollUtil
• Iterator工具-IterUtil
• 有界优先队列-BoundedPriorityQueue
• Map工具
• 概述
• Map工具-MapUtil
• Codec编码
• Base64编码解码-Base64
• Base32编码解码-Base32
• 文本操作
• CSV文件处理工具-CsvUtil
• 可复用字符串生成器-StrBuilder
• Unicode编码转换工具-UnicodeUtil
• 字符串切割-StrSpliter
• 注解
• 注解工具-AnnotationUtil
• 比较器
• 概述
• 异常
• 异常工具-ExceptionUtil
• 其它异常封装
• 数学
• 数学相关-MathUtil
• 线程和并发
• 线程工具-ThreadUtil
• 图片
• 图片工具-ImgUtil
• 图片编辑器-Img
• 网络
• 网络工具-NetUtil
• 配置文件(Hutool-setting)
• 概述
• 设置文件-Setting
• Properties扩展-Props
• 日志(Hutool-log)
• 概述
• 日志工厂-LogFactory.md
• 静态调用日志-StaticLog
• 疑惑解答
• 缓存(Hutool-cache)
• 概述
• 缓存工具-CacheUtil
• 先入先出-FIFOCache
• 最少使用-LFUCache
• 最近最久未使用-LRUCache
• 超时-TimedCache
• 弱引用-WeakCache
• 文件缓存-FileCache
• JSON(Hutool-json)
• 概述
• JSON工具-JSONUtil
• JSON对象-JSONObject
• JSON数组-JSONArray
• 加密解密(Hutool-crypto)
• 概述
• 加密解密工具-SecureUtil
• 对称加密-SymmetricCrypto
• 非对称加密-AsymmetricCrypto
• 摘要加密-Digester和HMac
• 签名和验证-Sign
• 国密算法工具-SmUtil
• DFA查找(Hutool-dfa)
• 概述
• DFA查找
• 数据库(Hutool-db)
• 概述
• 数据库简单操作-Db
• 支持事务的CRUD-Session
• 数据源配置db.setting样例
• 数据源工厂-DsFactory
• SQL执行器-SqlExecutor
• 案例1-导出Blob字段图像
• 常见问题
• NoSQL数据库客户端封装
• Redis客户端封装-RedisDS
• MongoDB客户端封装-MongoDS
• HTTP客户端(Hutool-http)
• 概述
• Http客户端工具类-HttpUtil
• Http请求-HttpRequest
• Http响应-HttpResponse
• HTML工具类-HtmlUtil
• UA工具类-UserAgentUtil
• 常用Http状态码-HttpStatus
• 常见问题
• 案例1-爬取开源中国的开源资讯
• WebService
• Soap客户端-SoapClient
• 定时任务(Hutool-cron)
• 概述
• 全局定时任务-CronUtil
• 扩展(Hutool-extra)
• 概述
• 邮件工具-MailUtil
• 二维码工具-QrCodeUtil
• Servlet工具-ServletUtil
• 模板引擎
• 模板引擎封装-TemplateUtil
• Jsch封装
• Jsch(SSH)工具-JschUtil
• CommonsNet封装
• FTP封装-Ftp
• Emoji表情
• Emoji工具-EmojiUtil
• 中文分词
• 中文分词封装-TokenizerUtil
• Spring
• Spring工具-SpringUtil
• 布隆过滤(Hutool-bloomFilter)
• 概述
• 切面(Hutool-aop)
• 概述
• 切面代理工具-ProxyUtil
• 脚本(Hutool-script)
• 概述
• Script工具-ScriptUtil
• Office文档操作(Hutool-poi)
• 概述
• Excel工具-ExcelUtil
• Excel读取-ExcelReader
• 流方式读取Excel2003-Excel03SaxReader
• 流方式读取Excel2007-Excel07SaxReader
• Excel生成-ExcelWriter
• Excel大数据生成-BigExcelWriter
• Word生成-Word07Writer
• 系统调用(Hutool-system)
• 系统属性调用-SystemUtil
• 图形验证码(Hutool-captcha)

### Hutool 工具类的功能与使用 #### 字符串处理工具 `StrUtil` `StrUtil` 类提供了许多用于字符串操作的方法,这些方法能够简化日常开发中的字符串处理逻辑。例如: - 判断字符串是否为空或仅含空白字符:`StrUtil.isEmpty(String str)` 或者 `StrUtil.isBlank(String str)` - 去除字符串两端的指定字符:`StrUtil.trim(String s, char trimChar)` - 将驼峰命名转换成下划线风格:`StrUtil.toUnderlineCase(String camelCaseName)` ```java // 示例代码展示如何判断字符串是否为空以及去除特定字符 if (StrUtil.isNotEmpty("hello world")) { System.out.println(StrUtil.trim(" hello world ", ' ')); } ``` 此部分描述了 `StrUtil` 中一些常用的静态方法及其应用场景[^1]。 #### 文件操作工具 `FileUtil` 对于文件读写等 I/O 操作而言,`FileUtil` 可以为用户提供便捷的方式来进行文件管理。它支持创建目录、复制/移动文件夹、遍历文件列表等功能。下面列举几个典型例子: - 创建多层目录结构:`FileUtil.mkdir(File dir)` - 复制整个文件夹到另一个位置:`FileUtil.copyDir(File srcDir, File destDir)` - 遍历给定路径下的所有文件并执行回调函数:`FileUtil.loopFiles(File directory, IoConsumer<File> consumer)` ```java // 展示如何利用 FileUtil 实现简单的文件拷贝过程 try { File sourceDirectory = new File("/path/to/source"); File targetDirectory = new File("/path/to/target"); // 执行文件夹复制动作 FileUtil.copy(sourceDirectory, targetDirectory); } catch (Exception e) { e.printStackTrace(); } ``` 上述代码片段展示了基于 `FileUtil` 进行基本文件系统交互的能力[^2]。 #### HTTP 请求辅助器 `HttpUtil` 当涉及到网络请求时,`HttpUtil` 能够帮助构建 GET/POST 请求,并轻松获取响应数据。这使得发起 RESTful API 调用变得异常简便。以下是两个实用的例子: - 发送带有参数的 POST 请求并将返回的结果解析为 JSON 对象:`JSONObject resultJson = HttpUtil.post(url, params);` - 下载远程资源保存至本地磁盘:`HttpUtil.downloadFile(urlString, fileOutputStream)` ```java // 使用 HttpUtil 向服务器发送 post 请求并打印结果 Map<String, Object> paramMap = Maps.newHashMap(); paramMap.put("key", "value"); HttpResponse response = HttpUtil.createPost("http://example.com/api").body(JSON.toJSONString(paramMap)).execute(); System.out.println(response.body()); ``` 这段程序说明了怎样借助于 `HttpUtil` 来完成一次完整的HTTP通信流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值