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

相关文章:

  • 深度剖析C++生态系统:一门老牌语言如何在开源浪潮中焕发新生?
  • [Java安全】JDK 动态代理
  • 浅谈SQL注入注释符#和--+的运用场景和区别
  • rocky8 --Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】
  • Hadoop(三)
  • Django REST Framework 入门指南:从 0 到 1 实现 RESTful API
  • 汇编 Call 指令运行原理详解:从跳转机制到堆栈操作
  • 基于 elements3 包装的 可展开 table 组件
  • uniapp各端通过webview实现互相通信
  • 并发编程-CountDownLatch
  • UniApp 多端人脸认证图片上传实现
  • 【PTA数据结构 | C语言版】前缀树的3个操作
  • 关于程序=数据结构+算法这句话最近的一些思考
  • 数字ic后端设计从入门到精通11(含fusion compiler, tcl教学)全定制设计入门
  • Java-数构链表
  • golang语法-----指针
  • 笔试——Day10
  • 简单易懂,什么是连续分配管理方式
  • Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)
  • Java线程创建与运行全解析
  • DuckDB 高效导入 IPv6 地址数据的实践与性能对比
  • #Datawhale组队学习#7月-强化学习Task1
  • java解析word文档
  • 使用JS编写一个购物车界面
  • C++ 面向对象
  • 第2章通用的高并发架构设计——2.3 高并发读场景方案2:本地缓存
  • 开源 python 应用 开发(七)数据可视化
  • Linux 定时器应用示例(修正版)
  • GIT版本回退
  • Python中可以反转的数据类型