当前位置: 首页 > news >正文

java工具类Hutool

官方在线文档::Hutool参考文档

maven项目引入:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.39</version>
</dependency>

官方功能说明:

常用功能:

// 字符串
StrUtil.isBlank(str);               // 判空
StrUtil.format("Hello {}", "Hutool"); // 占位符拼接

// 日期
Date now = DateUtil.date();
String dayStr = DateUtil.format(now, "yyyy-MM-dd");
Date newDay = DateUtil.offsetDay(now, 2);

// 数字
BigDecimal n = NumberUtil.round(3.14159, 2); // 3.14

// 集合
List<String> list = ListUtil.of("a", "b", "c");
Map<String, Object> map = MapUtil.of(new String[][]{{"k", "v"}});

// Bean / Map 互转
User u = BeanUtil.mapToBean(map, User.class, false);
Map<String, Object> m = BeanUtil.beanToMap(u);

// 文件
FileUtil.copy(src, dest, true);     // 复制
FileUtil.del(path);                 // 删除

// 网络
String body = HttpUtil.get("https://baidu.com");

// 加密
String md5 = SecureUtil.md5("123456");
AesCrypto aes = new AesCrypto(key);
String cipher = aes.encryptBase64(data);

// JSON
JSONObject obj = JSONUtil.parseObj(json);
User user = obj.toBean(User.class);

// Excel
ExcelWriter writer = ExcelUtil.getWriter("demo.xlsx");
writer.write(list);
writer.close();

发送post请求:

String resp = HttpRequest.post("http://api.example.com/create")
    .body("{\"name\":\"张三\",\"age\":18}")
    .contentType("application/json")
    .execute()
    .body();

生成密钥对:

// RSA 2048
KeyPair rsa = SecureUtil.generateKeyPair("RSA", 2048);
String publicKey  = Base64.encode(rsa.getPublic().getEncoded());
String privateKey = Base64.encode(rsa.getPrivate().getEncoded());

// ECC P-256
KeyPair ecc = SecureUtil.generateKeyPair("EC", 256);
String pubEcc = Base64.encode(ecc.getPublic().getEncoded());
String priEcc = Base64.encode(ecc.getPrivate().getEncoded());

实现缓存:

TimedCache<String, Object> cache = CacheUtil.newTimedCache(TimeUnit.MINUTES.toMillis(3));
cache.put("token", "abc123");
Object token = cache.get("token");   // 3 分钟后自动失效

http://www.dtcms.com/a/282463.html

相关文章:

  • Python day15
  • pip包报错
  • Java全栈面试实录:从电商支付到AIGC的深度技术考察
  • Thymeleaf 流程控制与迭代详解
  • WebStorm vs VSCode:前端圈的「豆腐脑甜咸之争」
  • 基于JAVA Spring Boot物理实验考核系统设计与实现 (文档+源码)
  • 入门华为数通,HCIA/HCIP/HCIE该怎么选?
  • 如何删除 VSCode 账号的远程同步备份记录数据
  • 大模型-AI生成视频零基础启蒙:从0到1制作AI视频
  • DeepSeek + 通义万相:AI视频创作效率革命与技术实践
  • 【Linux操作系统 | 第19篇-进阶篇】Shell编程(上篇)
  • 英飞凌 | 新兴无线BMS系统解决方案深度分析
  • C语言:动态内存管理
  • 【Docker-Day 6】从零到一:精通 Dockerfile 核心指令 (FROM, WORKDIR, COPY, RUN)
  • 壹脉销客AI电子名片源码核心架构
  • C++11 std::uninitialized_copy_n 原理与实现
  • 计算机网络:(九)网络层(下)超详细讲解互联网的路由选择协议、IPV6与IP多播
  • EVA series系列(上)
  • UltraISO编辑ISO文件
  • XPath注入攻击详解:原理、危害与防御
  • PLC-BMS电力载波通信技术深度解析:智能电网与储能系统的融合创新
  • (nice!!!)(LeetCode 每日一题) 3201. 找出有效子序列的最大长度 I (动态规划dp)
  • js数组简介
  • Linux 探秘进程与 fork:从内核源码到容器化演进
  • NLP:LSTM和GRU分享
  • 加速度传感器的用途与应用
  • Opencv---cv::minMaxLoc函数
  • Go与Python在数据管道与分析项目中的抉择:性能与灵活性的较量
  • React 中 props 的最常用用法精选+useContext
  • 单列集合顶层接口Collection