Hutool-All(或简称Hutool)是一个功能强大的Java编程工具库,旨在简化Java应用程序的开发。
它提供了大量的工具类和方法,涵盖了各种常见任务,包括字符串处理、日期时间操作、文件操作、网络通信、加密解密、数据转换、图像处理、JSON操作、Excel处理、邮件发送等等。
以下是Hutool-All的一些主要功能和模块的详细介绍
字符串工具(StrUtil):
提供了各种字符串处理方法,如判空、截取、拼接、格式化、大小写转换、正则表达式匹配等。
日期时间工具(DateUtil):
支持日期时间的格式化、解析、计算、比较、时区转换、时间间隔计算等功能。
文件工具(FileUtil):
提供了文件和目录的操作,包括复制、移动、删除、文件大小计算、文件类型判断等。
加密解密工具(SecureUtil):
包括各种常见的加密算法和哈希函数,如MD5、SHA-1、SHA-256、DES、AES等。
网络工具(NetUtil):
提供了网络相关的工具方法,如获取本机IP地址、端口扫描、HTTP请求发送等。
数据转换工具(Convert):
支持各种数据类型之间的转换,包括字符串、数字、日期、集合等。
JSON工具(JSONUtil):
提供了JSON对象的转换、解析、格式化和操作,方便与JSON数据的交互。
Excel工具(ExcelUtil):
支持Excel文件的读取和写入,包括读取和写入Excel表格数据、样式设置等。
图像工具(ImageUtil):
提供了图像处理功能,包括缩放、裁剪、旋转、水印添加、格式转换等。
邮件工具(MailUtil):
用于发送电子邮件的工具,支持文本和HTML邮件的发送。
定时任务工具(CronUtil):
提供了Cron表达式的解析和计算,方便定时任务的管理和调度。
日志工具(Log):
提供了简化日志记录的方法,允许以不同级别输出日志信息。
其他工具(MiscUtil):
包含了一些其他杂项工具,如SystemUtil(系统信息获取)、RuntimeUtil(运行时信息获取)等。

  字符串判空和非空检查

java
代码解读
复制代码
import cn.hutool.core.util.StrUtil;

String str = "Hello, World!";
boolean isEmpty = StrUtil.isEmpty(str); // 检查字符串是否为空
boolean isNotEmpty = StrUtil.isNotEmpty(str); // 检查字符串是否非空
  1. 字符串拼接
java
代码解读
复制代码
String str1 = "Hello";
String str2 = "World";
String result = StrUtil.format("{} {}!", str1, str2); // 使用{}占位符拼接字符串
  1. 日期格式化
 

java

代码解读
复制代码
import cn.hutool.core.date.DateUtil;

Date date = new Date();
String formattedDate = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss"); // 格式化日期
  1. 日期计算
 

java

代码解读
复制代码
import cn.hutool.core.date.DateUtil;

Date now = new Date();
Date nextDay = DateUtil.offsetDay(now, 1); // 计算下一天的日期
  1. 文件复制
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

FileUtil.copy("source.txt", "destination.txt", true); // 复制文件,第三个参数表示是否覆盖
  1. MD5加密
 

java

代码解读
复制代码
import cn.hutool.crypto.SecureUtil;

String input = "password123";
String md5Hash = SecureUtil.md5(input); // 计算MD5哈希值
  1. HTTP请求发送
 

java

代码解读
复制代码
import cn.hutool.http.HttpUtil;

String response = HttpUtil.get("https://www.example.com"); // 发送GET请求
  1. JSON转换
 

java

代码解读
复制代码
import cn.hutool.json.JSONUtil;

String jsonString = "{\"name\":\"John\",\"age\":30}";
JSONObject jsonObject = JSONUtil.parseObj(jsonString); // 将JSON字符串转换为JSON对象
  1. Excel读取
 

java

代码解读
复制代码
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelReader; ExcelReader reader = ExcelUtil.getReader("data.xlsx"); // 读取Excel文件
List<List<Object>> dataList = reader.read(); // 读取数据
  1. 图像缩放
 

java

代码解读
复制代码
import cn.hutool.core.img.ImgUtil;

ImgUtil.scale(new File("input.jpg"), new File("output.jpg"), 0.5f); // 缩放图像大小
  1. 发送邮件
 

java

代码解读
复制代码
import cn.hutool.extra.mail.MailUtil;
import cn.hutool.extra.mail.MailAccount; MailAccount account = new MailAccount();
account.setHost("smtp.example.com");
account.setPort(25);
account.setAuth(true);
account.setUser("your@email.com");
account.setPass("yourpassword"); MailUtil.send(account, "recipient@example.com", "Subject", "Message Body", false);
  1. 解析Cron表达式
 

java

代码解读
复制代码
import cn.hutool.cron.CronUtil;

String cron = "0 0/1 * * * ?";
CronUtil.schedule("testJob", cron, () -> System.out.println("执行任务")); // 解析Cron表达式并执行任务
CronUtil.start();
  1. 文件读取
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

String content = FileUtil.readUtf8String("example.txt"); // 读取文件内容
  1. SHA-256加密
 

java

代码解读
复制代码
import cn.hutool.crypto.digest.DigestUtil;

String input = "password123";
String sha256Hash = DigestUtil.sha256Hex(input); // 计算SHA-256哈希值
  1. HTTP POST请求
 

java

代码解读
复制代码
import cn.hutool.http.HttpUtil;

String postData = "data=example";
String response = HttpUtil.post("https://www.example.com", postData); // 发送POST请求
  1. URL编码和解码
 

java

代码解读
复制代码
import cn.hutool.core.util.URLUtil;

String url = "https://www.example.com?q=Hutool-All";
String encodedUrl = URLUtil.encode(url); // URL编码
String decodedUrl = URLUtil.decode(encodedUrl); // URL解码
  1. 判断文件是否存在
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

boolean fileExists = FileUtil.exist("example.txt"); // 判断文件是否存在
  1. AES加密和解密
 

java

代码解读
复制代码
import cn.hutool.crypto.symmetric.SymmetricCrypto;

SymmetricCrypto aes = new SymmetricCrypto(SymmetricAlgorithm.AES, "yourkey");
String content = "Sensitive data";
String encrypted = aes.encryptBase64(content); // AES加密
String decrypted = aes.decryptStr(encrypted); // AES解密
  1. URL构建
 

java

代码解读
复制代码
import cn.hutool.http.HtmlUtil;

String baseUrl = "https://www.example.com";
String query = "q=Hutool-All";
String completeUrl = HtmlUtil.encodeUrl(baseUrl, query); // 构建带查询参数的URL
  1. XML解析
 

java

代码解读
复制代码
import cn.hutool.core.util.XmlUtil;

String xml = "<user><name>John</name><age>30</age></user>";
Element root = XmlUtil.readXML(xml);
String name = XmlUtil.elementText(root, "name"); // 解析XML文档
  1. 文件写入
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

String content = "This is a test.";
FileUtil.writeUtf8String(content, "example.txt"); // 写入文件内容
  1. 身份证号码验证
 

java

代码解读
复制代码
import cn.hutool.core.util.IdcardUtil;

String idCard = "330682200001010101";
boolean valid = IdcardUtil.isValidCard(idCard); // 验证身份证号码是否有效
  1. 生成UUID
 

java

代码解读
复制代码
import cn.hutool.core.util.IdUtil;

String uuid = IdUtil.simpleUUID(); // 生成简单UUID
  1. HTTP下载文件
 

java

代码解读
复制代码
import cn.hutool.http.HttpUtil;

HttpUtil.downloadFile("https://www.example.com/file.zip", "downloaded.zip"); // 下载文件
  1. Map转换为Bean
 

java

代码解读
复制代码
import cn.hutool.core.bean.BeanUtil;

Map<String, Object> map = new HashMap<>();
map.put("name", "John");
map.put("age", 30);
User user = BeanUtil.mapToBean(map, User.class, true); // 将Map转换为Java Bean
  1. Enum转换工具
 

java

代码解读
复制代码
import cn.hutool.core.util.EnumUtil;

EnumUtil.fromString(WeekEnum.class, "SUND

AY"); // 通过名称获取Enum常量
  1. IP地址验证
 

java

代码解读
复制代码
import cn.hutool.core.util.NetUtil;

boolean validIp = NetUtil.isUsableLocalPort(80); // 检查端口是否可用
  1. 读取系统属性
 

java

代码解读
复制代码
import cn.hutool.system.SystemUtil;

String osName = SystemUtil.get("os.name"); // 读取系统属性
  1. 正则表达式匹配
 

java

代码解读
复制代码
import cn.hutool.core.util.ReUtil;

String content = "The price is $100.99";
String regex = "The price is \\$(\\d+\\.\\d+)";
String price = ReUtil.get(regex, content, 1); // 使用正则表达式匹配并提取价格
  1. Base64编码
 

java

代码解读
复制代码
import cn.hutool.core.codec.Base64;

String source = "Base64 Encoding";
String encoded = Base64.encode(source); // 进行Base64编码
String decoded = Base64.decodeStr(encoded); // 进行Base64解码
  1. 随机数生成
 

java

代码解读
复制代码
import cn.hutool.core.util.RandomUtil;

int randomInt = RandomUtil.randomInt(1, 100); // 生成指定范围内的随机整数
  1. 获取类加载器
 

java

代码解读
复制代码
import cn.hutool.core.util.ClassLoaderUtil;

ClassLoader classLoader = ClassLoaderUtil.getClassLoader(); // 获取当前线程的类加载器
  1. 获取文件后缀名
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

String fileName = "example.txt";
String extension = FileUtil.extName(fileName); // 获取文件的后缀名
  1. LRU缓存
 

java

代码解读
复制代码
import cn.hutool.cache.Cache;
import cn.hutool.cache.CacheUtil; Cache<String, String> lruCache = CacheUtil.newLRUCache(100);
lruCache.put("key1", "value1");
String value = lruCache.get("key1"); // 获取LRU缓存中的值
  1. XML格式化
 

java

代码解读
复制代码
import cn.hutool.core.util.XmlUtil;

String xml = "<user><name>John</name><age>30</age></user>";
String formattedXml = XmlUtil.format(xml); // 格式化XML文档
  1. 路径拼接
 

java

代码解读
复制代码
import cn.hutool.core.io.FileUtil;

String path1 = "C:\\example\\dir";
String path2 = "file.txt";
String fullPath = FileUtil.join(path1, path2); // 拼接路径
  1. CSV读取
 

java

代码解读
复制代码
import cn.hutool.core.text.csv.CsvData;
import cn.hutool.core.text.csv.CsvReader; CsvReader reader = new CsvReader("data.csv", CharsetUtil.CHARSET_UTF_8);
CsvData data = reader.read(); // 读取CSV文件内容
  1. Base58编码
 

java

代码解读
复制代码
import cn.hutool.core.util.StrUtil;

String input = "Base58 Encoding";
String encoded = StrUtil.base58Encode(input); // 进行Base58编码
String decoded = StrUtil.base58Decode(encoded); // 进行Base58解码
  1. URL参数解析
 

java

代码解读
复制代码
import cn.hutool.http.HtmlUtil;

String query = "name=John&age=30";
Map<String, String> paramMap = HtmlUtil.decodeParamMap(query, "UTF-8"); // 解析URL参数
  1. 对象克隆
 

java

代码解读
复制代码
import cn.hutool.core.util.ObjectUtil;

User original = new User("John", 30);
User clone = ObjectUtil.cloneByStream(original); // 使用流实现对象深克隆
  1. BigDecimal运算
 

java

代码解读
复制代码
import cn.hutool.core.util.NumberUtil;

BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("5.2");
BigDecimal result = NumberUtil.add(num1, num2); // 使用BigDecimal进行精确运算
  1. 随机字符串生成
 

java

代码解读
复制代码
import cn.hutool.core.util.RandomUtil;

String randomStr = RandomUtil.randomString(8); // 生成指定长度的随机字符串
  1. URL链接合并
 

java

代码解读
复制代码
import cn.hutool.core.util.URLUtil;

String base = "https://www.example.com";
String relative = "path/to/resource";
String fullUrl = URLUtil.complateUrl(base, relative); // 合并URL链接
  1. List分组
 

java

代码解读
复制代码
import cn.hutool.core.collection.CollUtil;

List<String> data = Arrays.asList("A", "B", "C", "D", "E");
List<List<String>> groups = CollUtil.subList(data, 2); // 将List分成指定大小的子List
  1. 环境变量获取
 

java

代码解读
复制代码
import cn.hutool.core.util.StrUtil;

String javaHome = StrUtil.format("Java Home: {}", SystemUtil.get("java.home")); // 获取系统环境变量
  1. 获取远程文件大小
 

java

代码解读
复制代码
import cn.hutool.http.HttpUtil;

long fileSize = HttpUtil.downloadFile("https://www.example.com/largefile.zip", FileUtil.file("temp.zip")).length(); // 获取远程文件大小
  1. 线程休眠
 

java

代码解读
复制代码
import cn.hutool.core.thread.ThreadUtil;

ThreadUtil.sleep(2000); // 休眠2秒
  1. 对象比较
 

java

代码解读
复制代码
import cn.hutool.core.util.ObjectUtil;

boolean isEqual = ObjectUtil.equal(obj1, obj2); // 比较两个对象是否相等
  1. ZIP文件解压
 

java

代码解读
复制代码
import cn.hutool.core.util.ZipUtil;

ZipUtil.unzip("example.zip", "destinationDir"); // 解压ZIP文件到指定目录
  1. Map键值互换
 

java

代码解读
复制代码
import cn.hutool.core.collection.CollUtil;

Map<String, Integer> originalMap = new HashMap<>();
Map<Integer, String> swappedMap = CollUtil.reverse(originalMap); // 交换Map的键和值

这些方法代表了Hutool-All库中的常见用例。请注意,Hutool-All库提供了更多方法和功能,可以根据需要选择合适的工具来简化Java开发任务。

作者:IT小辉同学
链接:https://juejin.cn/post/7294098092215468068
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

Java工具库——Hutool的常用方法的更多相关文章

  1. 干掉复杂的工具类,国产Java工具类库 Hutool 很香!

    Hutool 大家已经比较熟悉了,这是一个超全的 Java 工具库,深受国内开发者的喜爱. 我之前其实是不太喜欢使用这种功能太多的工具类的,也比较担心稳定性和安全性,后面慢慢接受了就感觉其实也还好.而 ...

  2. Bean-Query 一个把对象转换为Map的Java工具库

    刚开源了一个经过完整測试的Java工具类. 地址例如以下: https://github.com/Jimmy-Shi/bean-query 使用说明例如以下: Bean-query Click Her ...

  3. java工具库

    Guava: commons:---工具库(尤其里面的排序库) joda-time:

  4. Java工具库:

    1.  重试框架: https://docs.spring.io/spring-batch/trunk/reference/html/retry.html <dependency> < ...

  5. fastjson——json工具库

    fastjson alibaba fastjson是阿里巴巴公司开源维护的一个处理json格式数据的java工具库. 功能特性: 数据绑定databind (json string <--> ...

  6. JAVA基础——Arrays工具类十大常用方法

    Arrays工具类十大常用方法 原文链接:http://blog.csdn.net/renfufei/article/details/16829457 0. 声明数组 String[] aArray ...

  7. hutool JAVA 工具类

    https://hutool.cn/docs/#/ 入门和安装 A set of tools that keep Java sweet. -- 主页:https://hutool.cn/ | http ...

  8. Hutool :一个小而全的 Java 工具类库

    Hutool 简介 Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的 ...

  9. 细说Java主流日志工具库

    概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息. 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子. 我们先来逐一了解一下主流日志工具. java.util ...

  10. Java主流日志工具库

    在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息.在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子.我们先来逐一了解一下主流日志工具. 1.java.util.lo ...

随机推荐

  1. k8s——api

    api概述 api是k8s系统的重要部分,组件之间的所有操作和通信均由apiserver处理的rest api调用,大多数情况下,api定义和实现都符合标准的http rest格式,可以通过kubct ...

  2. [SWPUCTF 2021 新生赛]easyrce

    这道题比较简单,打开环境一看就只需要构造一个get传参的命令就行,我们就看一下有些什么文件,构造payload: ?url=system ("ls /"); 看到有个 flllll ...

  3. C#中路径说明

    路径中一个点和两个点的区别 ./    表示当前目录,如"./jquery-1.3.2.min.js",也可以去掉"./",如"jquery-1.3. ...

  4. Jmeter进行HTTPS接口压测及SSL证书验证

    一.前言 使用JMeter压测HTTPS接口比较简单,只需要预先处理SSL证书认证,后面就是压测HTTP接口的通用步骤. HTTPS连接证书来验证浏览器和WEB服务器之间的连接.通过HTTP连接时,服 ...

  5. a标签的title属性 换行

    使用 title 属性,可以让鼠标悬停在超链接上的时候,显示该超链接的文字注释. <a href="#" title = "123">超链接< ...

  6. Linux设置时区

    引言 在linux安装好了过后,如果时区不正确,需要手动地对它设置我们需要的时区 设置 控制台输入tzselect,回车 tzselect 2.然后选择 5 "Asia" 亚州,回 ...

  7. AWX+gitlab

    目录 AWX+gitlab 1. Awx配置 1.1 添加机构 1.2 添加团队 1.3 添加主机 1.4 测试主机连通性 2. 对接gitlab 2.1 添加凭证 2.2 添加项目 2.3 上传pl ...

  8. 打开ftp服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹

    产生这种现象有很多方面的原因 如果你能用命令行的方式访问ftp服务器,但是不能用资源管理器访问,那么请看下去. 1.打开IE浏览器,点击设置 2.点击Internet选项,进入高级 3.取消勾选 大功 ...

  9. Mysql 聚合函数嵌套使用

    Mysql 聚合函数嵌套使用 目的:Mysql 聚合函数嵌套使用 聚合函数不可以直接嵌套使用,比如: max(count(*)) 思路:但是可以嵌套子查询使用(先分组取出count值, 再将count ...

  10. CF1523D Love-Hate

    抽象化题意: 一共有 \(m\) 个元素,给定 \(n\) 个集合,每个集合的元素不超过 \(15\) 个,求出一个元素个数最多的集合 \(S\) 是至少 \(\lceil \dfrac{n}{2} ...