hutool工具的简单使用

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 这篇文章介绍了Hutool工具库的基本使用,通过代码示例展示了如何利用Hutool进行字符串处理、文件操作、集合操作、加密解密、日期时间处理、网络请求和读取资源文件等常见任务。

概述:官网docs/01.指南/01.快速入门/01.简介.md · Looly/hutool-doc-handy - Gitee.com

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

现在让我们动手实践一下

一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

模块 介绍
hutool-aop JDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache 简单缓存实现
hutool-core 核心,包括Bean操作、日期、各种Util等
hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto 加密解密模块,提供对称、非对称和摘要算法封装
hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
hutool-dfa 基于DFA模型的多关键字查找
hutool-extra 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)
hutool-http 基于HttpUrlConnection的Http客户端封装
hutool-log 自动识别日志实现的日志门面
hutool-script 脚本执行封装,例如Javascript
hutool-setting 功能更强大的Setting配置文件和Properties封装
hutool-system 系统参数调用封装(JVM信息等)
hutool-json JSON实现
hutool-captcha 图片验证码实现
hutool-poi 针对POI中Excel和Word的封装
hutool-socket 基于Java的NIO和AIO的Socket封装
hutool-jwt JSON Web Token (JWT)封装实现

第一步:创建一个项目

pom文件:

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

第二步:编写代码

代码如下:

package org.cyl.test04;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.ClassPathResource;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.http.HttpUtil;

import java.io.File;
import java.util.List;

public class HutoolExample {

    public static void main(String[] args) {
        // 字符串操作
        String str = "Hutool is a tool for Java.";
        String result = StrUtil.sub(str, 0, 10);
        Console.log("SubString: {}", result);

        // 文件操作
        File file = FileUtil.file("D:\\csdnwork\\test04\\src\\main\\resources\\static\\text.txt");
        FileUtil.writeUtf8String("Hello Hutool", file);

        // 集合操作
        List<String> list1 = CollUtil.newArrayList("Hutool", "Java", "Tool");
        List<String> list2 = CollUtil.newArrayList("Easy", "Effective");
        List<String> newList = (List<String>) CollUtil.addAll(list1, list2);
        Console.log("New List: {}", newList);

        // 加密
        String test = SecureUtil.md5("Hello Hutool");
        Console.log("MD5: {}", test);


        // 加密
        RSA rsa = new RSA();
        String originalText = "Hello Hutool";
        byte[] encryptResult = rsa.encrypt(originalText, KeyType.PublicKey);
        Console.log("Encrypted: {}", encryptResult);

        // 解密
        byte[] decryptResult = rsa.decrypt(encryptResult, KeyType.PrivateKey);
        String decryptedText = new String(decryptResult);
        Console.log("Decrypted: {}", decryptedText);


        // 日期时间处理
        String dateStr = "2022-01-22";
        Console.log("Date: {}", DateUtil.parse(dateStr));

        // 网络操作
        String response = HttpUtil.get("https://www.baidu.com");
        Console.log("HTTP Response: {}", response);

        // 读取Classpath下的资源文件
        ClassPathResource resource = new ClassPathResource("/static/index.html");
        String content = resource.readStr(CharsetUtil.CHARSET_UTF_8);
        Console.log("Resource Content: {}", content);
    }
}

这段代码是一个Java程序,使用了Hutool工具库进行字符串、文件、集合、加密、解密、日期时间处理、网络操作和读取Classpath下的资源文件的操作。下面是对每个部分的解析:

  1. 字符串操作:

    • StrUtil.sub(str, 0, 10):截取字符串str的前10个字符,并将结果赋值给变量result
    • Console.log("SubString: {}", result):将截取后的字符串输出到控制台。
  2. 文件操作:

    • File file = FileUtil.file("D:\\csdnwork\\test04\\src\\main\\resources\\static\\text.txt"):创建一个文件对象,表示路径为"D:\csdnwork\test04\src\main\resources\static\text.txt"的文件。
    • FileUtil.writeUtf8String("Hello Hutool", file):将字符串"Hello Hutool"写入到文件中。
  3. 集合操作:

    • List<String> list1 = CollUtil.newArrayList("Hutool", "Java", "Tool"):创建一个包含三个元素的字符串列表list1
    • List<String> list2 = CollUtil.newArrayList("Easy", "Effective"):创建一个包含两个元素的字符串列表list2
    • List<String> newList = (List<String>) CollUtil.addAll(list1, list2):将list1list2合并成一个新的列表newList
    • Console.log("New List: {}", newList):将合并后的列表输出到控制台。
  4. 加密:

    • String test = SecureUtil.md5("Hello Hutool"):使用MD5算法对字符串"Hello Hutool"进行加密,并将加密后的结果赋值给变量test
    • Console.log("MD5: {}", test):将加密后的结果输出到控制台。
  5. 加密:

    • RSA rsa = new RSA():创建一个RSA加密对象。
    • String originalText = "Hello Hutool":定义一个原始文本字符串。
    • byte[] encryptResult = rsa.encrypt(originalText, KeyType.PublicKey):使用公钥对原始文本进行加密,并将加密后的结果赋值给字节数组encryptResult
    • Console.log("Encrypted: {}", encryptResult):将加密后的结果输出到控制台。
  6. 解密:

    • byte[] decryptResult = rsa.decrypt(encryptResult, KeyType.PrivateKey):使用私钥对加密后的结果进行解密,并将解密后的结果赋值给字节数组decryptResult
    • String decryptedText = new String(decryptResult):将解密后的字节数组转换为字符串。
    • Console.log("Decrypted: {}", decryptedText):将解密后的字符串输出到控制台。
  7. 日期时间处理:

    • String dateStr = "2022-01-22":定义一个日期字符串。
    • Console.log("Date: {}", DateUtil.parse(dateStr)):将日期字符串解析为日期对象,并输出到控制台。
  8. 网络操作:

    • String response = HttpUtil.get("https://www.baidu.com"):发送HTTP GET请求到指定的URL(百度首页),并将响应内容赋值给字符串变量response
    • Console.log("HTTP Response: {}", response):将HTTP响应内容输出到控制台。
  9. 读取Classpath下的资源文件:

    • ClassPathResource resource = new ClassPathResource("/static/index.html"):创建一个ClassPathResource对象,表示路径为"/static/index.html"的资源文件。
    • String content = resource.readStr(CharsetUtil.CHARSET_UTF_8):读取资源文件的内容,并将其转换为UTF-8编码的字符串。
    • Console.log("Resource Content: {}", content):将资源文件的内容输出到控制台。

结果展示

目录
相关文章
|
Windows
hutool工具命令行工具
hutool工具命令行工具
|
JSON easyexcel Java
EasyExcel的简单使用
EasyExcel的简单使用,以及如何通过postman进行导入导出功能的调试
1334 1
|
5月前
|
XML 算法 Java
Hutool该怎么用?
Hutool 是一个中国开发者常用的 Java 工具包,包含了多个模块,如 AOP、BloomFilter、缓存、日期、加密、HTTP 客户端、日志、脚本执行、设置文件处理、系统参数调用等。
109 0
|
5月前
|
Java 数据库连接 Apache
Hutool工具包等常用工具类总结
Hutool工具包等常用工具类总结
167 0
java202303java学习笔记第三十八天常用工具包hutool之2
java202303java学习笔记第三十八天常用工具包hutool之2
47 0
java202303java学习笔记第三十八天常用工具包hutool之1
java202303java学习笔记第三十八天常用工具包hutool之1
48 0
hutool工具反射工具
hutool工具反射工具
hutool工具反射工具
|
XML 编解码 JSON
Hutool工具包学习
Hutool工具包学习
317 0
|
Java Spring
hutool工具类处理工具
hutool工具类处理工具