当前位置: 首页 > 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.xdnf.cn/news/1133533.html

相关文章:

  • 工业网络协议桥接设计指南:从LIN到CAN/RS-232的毫秒级互通方案
  • 推客系统开发:从零构建高并发社交平台的技术实践
  • 基于springboot+vue的酒店管理系统设计与实现
  • 事务~~~
  • 横向移动(下)
  • 关于redis各种类型在不同场景下的使用
  • 消息中间件(Kafka VS RocketMQ)
  • UDP和TCP的主要区别是什么?
  • 单片机(STM32-中断)
  • 构建足球实时比分APP:REST API与WebSocket接入方案详解
  • 比特币技术简史 第二章:密码学基础 - 哈希函数、公钥密码学与数字签名
  • 主机安全---开源wazuh使用
  • OCR 与 AI 图像识别:协同共生的智能双引擎
  • 从0开始学习R语言--Day48--Calibration Curves 评估模型
  • 预训练模型:大规模数据预学习范式——定义、原理与演进逻辑
  • 360安全卫士硬盘写入问题解析
  • 了解一下Unity Object的内存管理机制
  • 使用JS编写一个购物车界面
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • 实训十一——网络通信原理
  • WP Force SSL Pro – HTTPS SSL Redirect Boost Your Website‘s Trust in Minutes!
  • ByteToMessageDecoder详解
  • 神经网络常见激活函数 13-Softplus函数
  • Linux4:线程
  • 7.16 Java基础 | 集合框架(上)
  • SM3算法工程中添加bouncycastle.bcprov.jdk15on库
  • 从函数调用到进程通信:Linux下的多语言协作实践
  • MySQL 8.0 OCP 1Z0-908 题目解析(27)
  • 解决“Windows 无法启动服务”问题指南
  • 论文导读--PQ3D:通过分段级分组实现多模态特征融合和 MTU3D:在线查询表示学习与动态空间记忆