千家信息网

Java的类库Hutool及API如何使用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了Java的类库Hutool及API如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的类库Hutool及API如何使用文章都会有所收获,下面
千家信息网最后更新 2026年11月03日Java的类库Hutool及API如何使用

这篇文章主要介绍了Java的类库Hutool及API如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java的类库Hutool及API如何使用文章都会有所收获,下面我们一起来看看吧。

    前言

    Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅,让 Java 语言也可以"甜甜的"。
    Hutool 中的工具方法来自于每个用户的精雕细琢,它涵盖了 Java 开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
    Hutool 是项目中"util"包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的 bug。

    HuTool 中的一些常用工具类

    我们引入这个工具类很简单,直接在 Mavan 项目中引入 dependency 即可,如果是初学者,去 Maven Repository 下载 jar 包也可以使用。

        cn.hutool    hutool-all    5.3.5

    通过 Hutool,可以减少代码搜索成本,避免网络上参差不齐的代码出现导致的bug。

    日期相关 API

    我们知道,Java 中关于日期的 API 使用一直很繁琐,从 Date 到 Calendar,对开发者都不是那么友好,还容易出 BUG,那么 Hutool 首先就对日期下手了,提供了针对 JDK 中 Date 和 Calendar 对象的封装。

    比如要对当前的 Date 日期进行格式化,一般使用 SimpleDateFormat(yyyy-MM-dd HH:mm:ss) 这种方式,但 SimpleDateFormat 这个类是线程不安全的,而 Hutool 提供了一个 FastDateFormat 类,提供线程安全的针对 Date 对象的格式化和日期字符串解析支持。此对象在实际使用中并不需要感知,相关操作已经封装在 DateUtil 和 DateTime 的相关方法中。

    还有其它的日期 API 如下:

    • DateUtil 针对日期时间操作提供一系列静态方法

    • DateTim 提供类似于 Joda-Time 中日期时间对象的封装,继承自 Date 类,并提供更加丰富的对象方法。

    • DateBetween 计算两个时间间隔的类,除了通过构造新对象使用外,相关操作也已封装在 DateUtil 和 DateTime 的相关方法中。

    • TimeInterval 一个简单的计时器类,常用于计算某段代码的执行时间,提供包括毫秒、秒、分、时、天、周等各种单位的花费时长计算,对象的静态构造已封装在 DateUtil 中。

    • DatePattern 提供常用的日期格式化模式,包括 String 类型和 FastDateFormat 两种类型。

    随机工具

    随机工具应该是我们开发中用的较多的类库,Hutool 也封装了常用的 API。

    • RandomUtil.randomInt 获得指定范围内的随机数

    • RandomUtil.randomBytes 随机 bytes

    • RandomUtil.randomEl 随机获得列表中的元素

    • RandomUtil.randomEleSet 随机获得列表中的一定量的不重复元素,返回 Set

    • RandomUtil.randomString 获得一个随机的字符串(只包含数字和字符)

    • RandomUtil.randomNumbers 获得一个只包含数字的字符串

    • RandomUtil.randomUUID 随机 UUID

    • RandomUtil.weightRandom 权重随机生成器,传入带权重的对象,然后根据权重随机获取对象

    图片工具

    针对 awt 中图片处理进行封装,这些封装包括:缩放、裁剪、转为黑白、加水印等操作。

    彩色转换成黑白
    //黑白转换ImgUtil.gray(FileUtil.file("d:/logo.png"), FileUtil.file("d:/result.png"));
    添加文字水印
    ImgUtil.pressText(//    FileUtil.file("e:/pic/face.jpg"), //    FileUtil.file("e:/pic/test2_result.png"), //    "版权所有", Color.WHITE, //文字    new Font("黑体", Font.BOLD, 100), //字体    0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移    0, //y坐标修正值。 默认在中间,偏移量相对于中间偏移    0.8f//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字);

    加密解密工具

    加密一般分为三种:

    1. 对称加密(symmetric),例如:AES、DES等

    2. 非对称加密(asymmetric),例如:RSA、DSA等

    3. 摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等

    Hutool 对上述加密都提供了对应的封装方法。

    布隆过滤器

    布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。一般用于解决 NoSQL 的缓存穿透问题。

    // 初始化BitMapBloomFilter filter = new BitMapBloomFilter(10);filter.add("123");filter.add("abc");filter.add("ddd");// 查找filter.contains("abc")

    邮件工具

    在 Java中 发送邮件主要品依靠 javax.mail 包,原生 API 使用比较繁琐,Hutool 在支持邮件发送的基础上,仍然依赖于 javax.mail 包。

        javax.mail    mail    1.4.7

    邮件服务器的完整配置:

    # 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>host = smtp.yeah.net# 邮件服务器的SMTP端口,可选,默认25port = 25# 发件人(必须正确,否则发送失败)from = hutool@yeah.net# 用户名,默认为发件人邮箱前缀user = hutool# 密码(注意,某些邮箱需要为SMTP服务单独设置授权码,详情查看相关帮助)pass = q1w2e3

    发送邮件:

    • 发送普通文本邮件,最后一个参数可选是否添加多个附件:

    //普通文本MailUtil.send("hutool@foxmail.com", "测试", "邮件来自Hutool测试", false);
    • 发送 HTML 格式的邮件并附带附件,最后一个参数可选是否添加多个附件:

    //带HTML格式的邮件MailUtil.send("hutool@foxmail.com", "测试", "

    邮件来自Hutool测试

    ", true, FileUtil.file("d:/aaa.xml"));
    • 群发邮件,可选 HTML 或普通文本,可选多个附件:

    //群发ArrayList tos = CollUtil.newArrayList(    "person1@bbb.com",     "person2@bbb.com",     "person3@bbb.com",     "person4@bbb.com");MailUtil.send(tos, "测试", "邮件来自Hutool群发测试", false);

    HTML 工具

    比如清除富文本编辑器中的 HTML 文本的指定标签,或者只保留普通文本。

    HtmlUtil.cleanHtmlTag

    清除所有 HTM L标签,但是保留标签内的内容。

    String str = "pre
    dfdsfdsfdsf
    BBBB
    ";// 结果为:pre dfdsfdsfdsfBBBBString result = HtmlUtil.cleanHtmlTag(str);
    HtmlUtil.removeHtmlTag

    清除指定HTML标签和被标签包围的内容

    String str = "pre";// 结果为:preString result = HtmlUtil.removeHtmlTag(str, "img");
    过滤 HTML 文本,防止 XSS 攻击

    这个作用就不必多说,防止用户在输入文本中写入 HTML 标签对后台造成攻击。

    String html = "";// 结果为:""String filter = HtmlUtil.filter(html);

    JSON 工具

    由于有开源并且一直在维护的 Fastjson 工具在先,所以这里就不再细说 Hutool 中的 JSON 工具,使用方法基本类似。

    关于"Java的类库Hutool及API如何使用"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Java的类库Hutool及API如何使用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    工具 邮件 封装 对象 方法 日期 文本 时间 标签 加密 开发 测试 格式 项目 普通 代码 内容 字符 附件 偏移 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技战争 腾讯阿里互联网科技 互联网科技未来 为想互联网科技 礼当家互联网科技 苏州互联网科技贷款公司 火传媒上海互联网科技 安控科技rtu产品工业互联网 青岛中康互联网医疗科技有限公司 字节跳动和互联网科技 深圳育鹏互联网科技有限公司招聘 互联网科技和法律行业 玉溪新华互联网科技好不好 工业互联网等科技实现智能化赋能 爱医互联网络科技 滨湖区互联网智能科技产品有哪些 元气玛特互联网科技公司是外包吗 科技互联网行业投资研究 互联网科技职业技能培训学校 科技互联网专业工作会议发言稿 深圳九邦互联网科技有限公司 A股互联网金融科技公司 万易互联网科技 中国互联网十大科技股排名 无锡工业互联网科技有限公司 上海钢联属于互联网科技股吗 黑云互联网科技有限公司 互联网金融运营模式中的金融科技 上海旺乐尼互联网科技有限公司 互联网高科技绘画
    0