一篇文章带你玩转Hutool工具类

Hutool 是一个功能强大的 Java 工具类库,旨在简化 Java 开发中的常见操作,提供高效、易用的 API。它的设计理念是“减少代码量、提高开发效率”,几乎覆盖了日常开发中的所有工具需求。以下是 Hutool 的核心模块及典型使用场景详解:


一、Hutool 核心模块概览

模块功能描述典型工具类
工具类(Core)基础工具(字符串、日期、反射等)StrUtil, DateUtil, ClassUtil
转换(Convert)类型转换(对象、编码、进制等)Convert, HexUtil, UnicodeUtil
网络(Http)HTTP 请求、响应处理HttpUtil, HttpRequest, HttpResponse
加密(Crypto)对称/非对称加密、摘要算法SecureUtil, DigestUtil, RSA
文件IO(IO)文件读写、流操作FileUtil, IoUtil
JSON 处理JSON 解析与生成JSONUtil, JSONObject, JSONArray
Excel 操作Excel 读写(基于 POI 封装)ExcelUtil, ExcelReader, ExcelWriter
缓存(Cache)本地缓存(LRU、FIFO 等策略)CacheUtil, LRUCache, FIFOCache
定时任务简单定时任务调度CronUtil
系统工具JVM 信息、系统属性、线程工具SystemUtil, RuntimeUtil, ThreadUtil

二、Hutool 核心功能详解

1. 字符串处理(StrUtil
  • 功能:字符串判空、格式化、截取、替换等。
  • 示例
    // 判断字符串是否为空(支持空字符串、空白字符)
    boolean isEmpty = StrUtil.isEmpty("  "); // false
    boolean isBlank = StrUtil.isBlank("  "); // true
    
    // 格式化字符串(类似 Slf4j)
    String template = "姓名:{},年龄:{}";
    String formatted = StrUtil.format(template, "张三", 25); // "姓名:张三,年龄:25"
    
2. 日期处理(DateUtil
  • 功能:日期解析、格式化、计算、时区转换。
  • 示例
    // 字符串转日期(自动识别格式)
    Date date = DateUtil.parse("2023-10-01");
    
    // 计算时间差
    long betweenDays = DateUtil.between(date, new Date(), DateUnit.DAY);
    
    // 格式化日期
    String format = DateUtil.format(date, "yyyy/MM/dd"); // "2023/10/01"
    
3. 类型转换(Convert
  • 功能:基本类型、字符串、集合、枚举等之间的转换。
  • 示例
    // 字符串转数字(自动处理异常)
    int num = Convert.toInt("123", 0); // 转换失败返回默认值 0
    
    // 集合转数组
    List<String> list = Arrays.asList("a", "b", "c");
    String[] array = Convert.toStrArray(list);
    
    // 编码转换(如 Unicode)
    String unicode = Convert.strToUnicode("你好", true); // "\\u4f60\\u597d"
    
4. HTTP 请求(HttpUtil
  • 功能:发送 GET/POST 请求、文件上传、Cookie 管理。
  • 示例
    // GET 请求(自动处理编码)
    String response = HttpUtil.get("https://api.example.com/data");
    
    // POST 表单提交
    HashMap<String, Object> params = new HashMap<>();
    params.put("username", "admin");
    params.put("password", "123456");
    String result = HttpUtil.post("https://api.example.com/login", params);
    
    // 下载文件
    long size = HttpUtil.downloadFile("https://example.com/file.zip", FileUtil.file("/download/"));
    
5. 加密解密(SecureUtil
  • 功能:支持 AES、DES、RSA、MD5、SHA 等算法。
  • 示例
    // AES 加密
    String content = "Hello World";
    String key = "1234567890abcdef";
    String encrypted = SecureUtil.aes(key.getBytes()).encryptHex(content);
    
    // MD5 摘要
    String md5 = SecureUtil.md5("password");
    
6. 文件操作(FileUtil
  • 功能:文件读写、目录操作、路径处理。
  • 示例
    // 读取文件内容(自动关闭流)
    String content = FileUtil.readUtf8String("test.txt");
    
    // 递归拷贝目录
    FileUtil.copy("src/", "backup/", true);
    
    // 获取文件扩展名
    String extName = FileUtil.extName("demo.jpg"); // "jpg"
    
7. JSON 处理(JSONUtil
  • 功能:JSON 解析、生成、格式化。
  • 示例
    // 对象转 JSON
    User user = new User("张三", 25);
    String jsonStr = JSONUtil.toJsonStr(user); // {"name":"张三","age":25}
    
    // JSON 转 Bean
    User parsedUser = JSONUtil.toBean(jsonStr, User.class);
    
    // 解析复杂 JSON
    JSONObject json = JSONUtil.parseObj("{'data': {'list': [1,2,3]}}");
    JSONArray list = json.getJSONObject("data").getJSONArray("list");
    

三、Hutool 的优势

  1. 低学习成本
    • 方法名直观(如 StrUtil.isEmpty()),无需记忆复杂 API。
  2. 无依赖
    • 核心模块仅依赖 Java SDK,避免与其他库冲突。
  3. 高性能
    • 优化底层实现(如缓存、复用对象),减少资源消耗。
  4. 文档齐全

四、快速上手

1. 添加依赖(Maven)
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.20</version>
</dependency>
2. 常用工具类静态导入
import static cn.hutool.core.util.StrUtil.*;
import static cn.hutool.core.date.DateUtil.*;

五、注意事项

  • 版本兼容性:Hutool 5.x 需要 JDK 8+,低版本项目可使用 Hutool 4.x。
  • 日志框架:Hutool 内置日志门面,自动适配 Slf4j、Log4j 等。
  • 性能敏感场景:避免频繁调用工具类方法(如循环中大量使用 DateUtil)。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值