hutool工具的简单使用

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

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

现在让我们动手实践一下

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

模块介绍
hutool-aopJDK动态代理封装,提供非IOC下的切面支持
hutool-bloomFilter布隆过滤,提供一些Hash算法的布隆过滤
hutool-cache简单缓存实现
hutool-core核心,包括Bean操作、日期、各种Util等
hutool-cron定时任务模块,提供类Crontab表达式的定时任务
hutool-crypto加密解密模块,提供对称、非对称和摘要算法封装
hutool-dbJDBC封装后的数据操作,基于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-jsonJSON实现
hutool-captcha图片验证码实现
hutool-poi针对POI中Excel和Word的封装
hutool-socket基于Java的NIO和AIO的Socket封装
hutool-jwtJSON 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):将资源文件的内容输出到控制台。

结果展示

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nanshaws

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值