一篇文章带你玩转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. 文档齐全
    • 提供详细中文文档和示例:Hutool 文档

四、快速上手

1. 添加依赖(Maven)
<dependency>
    <groupId>cn.hutoolgroupId>
    <artifactId>hutool-allartifactId>
    <version>5.8.20version>
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)。

一篇文章带你玩转Hutool工具类_第1张图片

你可能感兴趣的:(java,后端,hutool,Java工具类)