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. Android 13 - Media框架(1)- 总览

    关注公众号免费阅读全文,进入音视频开发技术分享群! 为了加深对Android Media框架的理解,决定在这里记录下学习过程中碰到的问题以及一些个人思考.由于本人水平有限,笔记的内容可能会有一些错误, ...

  2. NSInvocation 返回值在ARC下面的释放问题

    一.先看下面的代码 -(NSArray *) operationFromTakeoffAction:(NSString *) action AtPoint:(CGPoint) flightPoint ...

  3. 使用Logstash同步Mysql到Easysearch

    从 MySQL 同步数据到 ES 有多种方案,这次我们使用 ELK 技术栈中的 Logstash 来将数据从 MySQL 同步到 Easysearch . 方案前提 MySQL 表记录必须有主键,比如 ...

  4. 爬取m3u8加密视频

    import random import os import re import requests import asyncio import aiohttp import time from lxm ...

  5. Linux Debian安装教程

    Debian 是一个免费的开源操作系统,是最古老的 Linux 发行版之一,于 1993 年由 Ian Murdock 创建.它采用了自由软件协议,并且由志愿者社区维护和支持.Debian 的目标是创 ...

  6. Thread的join方法demo

    Thread的join方法demo /** * 关于join官方的解释是 Waits for this thread to die. 也就是等待一个线程结束. */ public class Thre ...

  7. 解决登录服务器报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    背景 登录服务器的时候报错: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST ID ...

  8. Java面试知识点(五)hashmap、hashtable和hashset

    1. 关于 HashMap 的一些说法: a) HashMap 实际上是一个 "链表散列" 的数据结构,即数组和链表的结合体.HashMap 的底层结构是一个数组,数组中的每一项是 ...

  9. LLM学习笔记

    1. 评估榜单 1.1. C-Eval C-Eval 是一个全面的中文基础模型评估套件.它包含了13948个多项选择题,涵盖了52个不同的学科和四个难度级别. https://cevalbenchma ...

  10. Android 7 默认声音/大小修改

    背景 客户机器默认的开机声音一直很大:客户觉得无法接受,需要改小点. 基于Android 7的代码 前言 一般主要通过系统层来进行修改. 在系统关于音频的有关代码中,定义了两个数组: 注意,这些代码根 ...