当前位置: 首页 > news >正文

浅谈Hutool工具类

一、Hutool简介

在这里插入图片描述

Hutool是一个Java工具类库,它封装了很多常用的Java工具类,如加密解密、文件操作、日期时间处理、Http客户端等。它的目标是让Java开发变得更加简单、高效。

二、Hutool的特点

  • 高效:提供了很多高效的工具类和方法。

  • 简单:提供了很多简单易用的API,让Java开发更加简单。

  • 全面:封装了很多常用的工具类和方法,涵盖了Java开发的方方面面。

  • 开源:Hutool是一个开源的工具类库,你可以自由地使用、修改和分发。

三、Hutool的安装和使用

1. 安装

Hutool的安装非常简单,您只需要在您的项目中添加以下依赖即可:

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

2. 使用

在Hutool中,所有的工具类都以静态方法的形式存在,因此,您只需要按照以下步骤就可以使用Hutool提供的工具类:

  • 导入需要使用的工具类的包
  • 使用静态方法调用该工具类中提供的方法

例如,要使用Hutool提供的字符串工具类StrUtil中的方法,您只需要按照以下方式导入包和使用该类中的方法:

import cn.hutool.core.util.StrUtil;public class Demo {public static void main(String[] args) {String str = "Hutool工具类的使用示例";String result = StrUtil.sub(str, 0, 6);System.out.println(result); // 输出结果:Hutool}}

以上代码中,我们首先使用import语句导入了StrUtil类,然后使用该类中的静态方法sub截取了字符串,最后将结果输出到控制台。

四、Hutool常用工具类及示例

1. 字符串工具类:StrUtil

Hutool提供的StrUtil工具类封装了很多常用的字符串处理方法,如截取、比较、填充等。以下是使用该工具类的示例:

(1)截取指定长度的字符串

String str = "Hutool工具类的使用示例";
String result = StrUtil.sub(str, 0, 6); // 截取字符串的前六个字符

(2)比较两个字符串是否相等

String str1 = "Hutool";
String str2 = "hutool";
boolean isEqual = StrUtil.equalsIgnoreCase(str1, str2); // 比较两个字符串是否相等,忽略大小写

(3)判断字符串是否为空

String str = "";
boolean isEmpty = StrUtil.isEmpty(str); // 判断字符串是否为空

2. 文件工具类:FileUtil

FileUtil是Hutool工具类库中一个非常实用的文件操作工具类,提供了很多常用的文件操作方法,如读取、写入、追加、创建等,尤其是在应对常见的文件操作场景,如文本文件(txt)、配置文件(properties)等,简单易用,方便快捷。

  1. 读取文件

读取文件是我们编写应用程序时必不可少的一项操作。FileUtil提供了读取文件的方法,代码非常简单,示例代码如下:

String content = FileUtil.readUtf8String("文件路径");//将UTF-8编码格式的文件读取到字符串中

FileUtil.readUtf8String()方法会自动判断文件编码格式,如果是UTF-8编码,则将该文件读取为字符串并返回。如果不是UTF-8编码,则会将文件转换为UTF-8编码再返回。

  1. 写入文件

写入文件是我们在应用程序中常用的一项操作,FileUtil提供了完整的写入文件操作的方法。以下是写入文件的示例代码:

String content = "这是写入文件的内容";
FileUtil.writeUtf8String(content, "文件路径");

FileUtil.writeUtf8String()方法会将content字符串写入到指定路径的文件中,使用UTF-8编码格式。

  1. 追加文件

在某些情况下,我们需要对某个已存在的文件进行追加操作,FileUtil也提供了相应的方法,如下所示:

String content = "这是追加的内容";
FileUtil.appendUtf8String(content, "文件路径");

FileUtil.appendUtf8String()方法会将content字符串追加到指定文件的末尾。

  1. 创建文件

当我们需要在本地磁盘中创建一个新的文件时,可以使用FileUtil提供的方法来实现创建文件的操作,如下所示:

File file = FileUtil.touch("文件路径");

FileUtil.touch()方法可以用来创建文件,如果文件已经存在,则更新修改时间,如果不存在,则会新建该文件。

  1. 判断文件是否存在

有时候我们需要在操作文件之前先判断文件是否存在,如果文件不存在,则需要进行相应的处理,FileUtil也提供了相应的方法来完成该操作,如下所示:

boolean isExists = FileUtil.exist("文件路径");

该方法会返回一个boolean类型的值,如果文件存在返回true,否则返回false。

  1. 复制文件

当我们需要将一个文件复制到另一个文件时,可以使用FileUtil提供的方法来进行文件复制操作,如下所示:

FileUtil.copy("源文件路径", "目标文件路径", true);//true表示如果目标文件不存在,则新建一个文件进行复制

FileUtil.copy()方法可以用来进行文件复制,如果目标文件不存在,则会新建一个文件进行复制。

  1. 删除文件

当我们不需要某个文件时,可以使用FileUtil提供的方法来删除该文件,如下所示:

FileUtil.del("文件路径");

该方法可以用来删除指定路径的文件,总之,FileUtil工具类提供了非常全面和实用的文件操作方法,可以大大简化我们的编程工作。

3. 时间日期工具类:DateUtil

Hutool提供的DateUtil工具类封装了很多常用的时间日期处理方法,如获取当前时间、字符串转日期等。以下是使用该工具类的示例:

(1)获取当前时间

Date now = DateUtil.date();

(2)将字符串转为日期

String str = "2023-05-10 16:22:00";
Date date = DateUtil.parse(str);

(3)格式化日期

Date date = new Date();
String formattedDate = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");

4. 加密解密工具类:SecureUtil

Hutool提供的SecureUtil工具类封装了很多常用的加密解密方法,如MD5加密、SHA加密、BASE64编码等。以下是使用该工具类的示例:

(1)MD5加密字符串

String str = "Hutool工具类的使用示例";
String md5 = SecureUtil.md5(str); // MD5加密字符串

(2)SHA加密字符串

String str = "Hutool工具类的使用示例";
String sha = SecureUtil.sha256(str); // SHA256加密字符串

(3)BASE64编码与解码

String str = "Hutool工具类的使用示例";
String encodedStr = SecureUtil.base64Encode(str); // 将字符串进行BASE64编码
String decodedStr = SecureUtil.base64Decode(encodedStr); // 将编码后的字符串进行解码

5. Http客户端工具类:HttpUtil

Hutool提供的HttpUtil工具类封装了很多常用的Http客户端操作方法,如发送GET请求、发送POST请求等。以下是使用该工具类的示例:

(1)发送GET请求

String url = "https://www.baidu.com";
HttpResponse response = HttpUtil.createGet(url).execute();
String responseBody = response.body();

(2)发送POST请求

String url = "http://localhost:8080/api/login";
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("username", "admin");
paramMap.put("password", "123456");
HttpResponse response = HttpUtil.createPost(url).form(paramMap).execute();
String responseBody = response.body();

以上示例中,我们使用了HttpUtil中提供的createGet和createPost方法,分别发送了GET和POST请求,并通过HttpResponse对象获取响应信息。

6.Office文档操作(Hutool-poi)

Hutool是一个Java工具库,其中的Hutool-poi模块提供了对Office文档的操作支持。下面是一些常见的Office文档操作示例:

(1)读取Excel文件

ExcelReader reader = ExcelUtil.getReader(FileUtil.file("test.xlsx"));
List<List<Object>> dataList = reader.read();
for (List<Object> row : dataList) {for (Object cell : row) {System.out.print(cell.toString() + "\t");}System.out.println();
}
reader.close();

(2) 写入Excel文件

ExcelWriter writer = ExcelUtil.getWriter(FileUtil.file("test.xlsx"));
List<List<Object>> dataList = new ArrayList<>();
List<String> headers = new ArrayList<>();
headers.add("姓名");
headers.add("年龄");
headers.add("性别");
dataList.add(Arrays.asList("张三", 18, "男"));
dataList.add(Arrays.asList("李四", 20, "女"));
dataList.add(Arrays.asList("王五", 22, "男"));
writer.writeHeadRow(headers);
writer.write(dataList);
writer.close();

(3)读取Word文件

WordExtractor extractor = new WordExtractor(FileUtil.file("test.docx"));
String content = extractor.getText();
extractor.close();
System.out.println(content);

(4)写入Word文件

DocxWriter writer = new DocxWriter("test.docx");
writer.write("Hello, World!");
writer.close();

以上仅是一些基础示例,Hutool-poi还提供了更丰富的API,如更精细的Excel表格操作、Word段落样式设置等。具体可参考官方文档。

五、总结

Hutool是一个十分实用的Java工具类库,它封装了很多Java开发中常用的工具类和方法。在开发过程中,我们可以利用Hutool提供的工具类来加速开发、提高效率。在本文中,我们介绍了Hutool的安装和使用方法,并针对常用的工具类进行了详细的功能讲解和示例演示。具体的功能模块请参考官网的文档进行使用:点击前往hutool官网

希望本文能对您有所帮助,谢谢阅读!

相关文章:

浅谈Hutool工具类

一、Hutool简介 Hutool是一个Java工具类库&#xff0c;它封装了很多常用的Java工具类&#xff0c;如加密解密、文件操作、日期时间处理、Http客户端等。它的目标是让Java开发变得更加简单、高效。 二、Hutool的特点 高效&#xff1a;提供了很多高效的工具类和方法。 简单&…...

Mac终端代理

1.打开代理查看代理端口号 打开设置&#xff0c;点击网络&#xff0c;点击详细信息&#xff0c;点击代理查看代理端口号。 2.修改环境变量 1&#xff09;终端输入下面命令 vim .zshrc 2&#xff09;在.zshrc文件里添加下面两段内容&#xff08;注意&#xff1a;7980为端口号…...

Git Clone 报错 `SSL certificate problem: unable to get local issuer certificate`

如果您在尝试克隆Git存储库时得到 “SSL certificate problem: unable to get local issuer certificate” 的错误,这意味着Git无法验证远程存储库的SSL证书。如果SSL证书是自签名的&#xff0c;或者SSL证书链有问题&#xff0c;就会发生这种情况。 $ git clone https://githu…...

第八章 文件与异常

引言 码字不易&#xff0c;如果这篇文章对您有帮助的话&#xff0c;希望您能点赞、收藏、加关注&#xff01;您的鼓励就是我前进的动力&#xff01; 目录 一、读取文件&#xff08;一&#xff09;读取文件&#xff1a;open(), with, read()&#xff08;二&#xff09;文件路径…...

Gradle使用

下载Gradle Gradle Distributions 配置环境变量 测试是否成功 cmd输入gradle -v 在.gradle目录下创建一个init.gradle allprojects { repositories { maven { url file:///D:/maven/myRepository} ## 这里是本地maven仓库地址,没有就会依次向下设置的地址寻…...

从七个方面聊聊Linux到底强在哪

从事计算机相关行业的同学不难发现&#xff0c;身边总有一些朋友在学习linux&#xff0c;有的开发同学甚至自己的电脑就是它。经常听他们说linux如何好用等等。那么linux到底好在那里&#xff0c;能让大家如此喜欢。这也是我经常问自己的一个问题。下面我将通过以下七点来为大家…...

python读写json文件方法详解

在我们日常使用 Python时&#xff0c;经常会使用到 json文件。那么在平时写一些小程序时&#xff0c;如何使用 json文件呢&#xff1f;今天我将介绍如何读取和写入 Json文件。 json是一种数据结构&#xff0c;它是将字符串转换成数据的一种技术。使用 json可以非常方便的将一组…...

多处最优服务次序问题——算法设计与分析(C实现)

问题描述&#xff1a;设有n个顾客同时等待一项服务。顾客i需要的服务时间为&#xff0c;共有s处可以提供此项服务。应该如何安排n个顾客的服务次序&#xff0c;才能使平均等待时间达到最小&#xff1f;平均等待时间是n个顾客的等待服务时间的总和除以n。 算法设计&#xff1a;对…...

2023 年 IntelliJ IDEA 下载安装教程,超详细图文教程,亲测可用

. IDEA 下载 1、打开浏览器输入https://www.jetbrains.com/&#xff0c;进入 Jetbrains官网&#xff0c;点击 Developer Tools&#xff0c;再点击 Intellij IDEA 2、点击中间的 Download&#xff0c;进入IDEA下载界面 3、选择左边的 Ultimate 版本进行下载安装。Ultimate 版…...

前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景

章节一&#xff1a;引言 在当前的互联网开发中&#xff0c;前端框架已经成为了不可或缺的一部分。然而&#xff0c;前端框架如此之多&#xff0c;该如何选择呢&#xff1f;Vue.js、React和AngularJS是目前比较受欢迎的三个前端框架&#xff0c;它们各自有着不同的优缺点和应用…...

JavaScript中的数据可视化和动画效果

摘要&#xff1a; JavaScript是一种强大而灵活的编程语言&#xff0c;被广泛用于网页开发和交互设计。在数据可视化和动画效果方面&#xff0c;JavaScript提供了丰富的工具和库&#xff0c;使开发者能够创建出令人印象深刻的交互式数据可视化和动画效果。本文将介绍JavaScript中…...

如何搭建在线产品手册

在现代社会&#xff0c;随着科技的发展&#xff0c;越来越多的企业将目光投向互联网&#xff0c;并将自己的产品推向了线上。而对于这些线上产品&#xff0c;拥有一份完备的、易用、高质量的在线产品手册显得尤为重要。 那么如何才能搭建一份高质量且易用的在线产品手册呢&…...

Java版企业电子采购招标系统源码

一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点&#xff1a;对草稿进行编辑&#x…...

【操作系统复习】第6章 虚拟存储器 2

请求分页中的内存分配 在为进程分配物理块时&#xff0c;要解决下列的三个问题&#xff1a; 1. 保证进程可正常运行所需要的最少物理块数 2. 每个进程的物理块数&#xff0c;是固定值还是可变值&#xff08;分配策略&#xff09; 3. 不同进程所分配的物理块数&#xff…...

【OAI】OAI5G核心网VPP-UPF网元分析

文章目录 VPP_UPF_CONFIG_GENERATION.mdVPP UPF Configuration GenerationEnvironment variablesInterfacesInterface Configuration ExamplesCentral UPFA-UPFI-UPFUL CL FEATURE_SET.mdVPP_UPG_CLI参考文献 VPP_UPF_CONFIG_GENERATION.md VPP UPF Configuration Generation …...

【上进小菜猪】使用Ambari提高Hadoop集群管理和开发效率:提高大数据应用部署和管理效率的利器

&#x1f4ec;&#x1f4ec;我是上进小菜猪&#xff0c;沈工大软件工程专业&#xff0c;爱好敲代码&#xff0c;持续输出干货&#xff0c;欢迎关注。 介绍 Hadoop是一种开源的分布式处理框架&#xff0c;用于在一组低成本硬件的集群上存储和处理大规模数据集。Ambari是一种基…...

Day3--C高级3

一.编写一个名为myfirstshell.sh的脚本&#xff0c;它包括以下内容。 1、包含一段注释&#xff0c;列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HO…...

第9章 CURD操作与MemoryCache缓存的强制清理的实现

1 重构 Data.Repository<TEntity> using Core.Caching; using Core.Domain; using Core.Events; using Microsoft.EntityFrameworkCore; namespace Data { ///<typeparam name"TEntity">泛型类型实例(这里特指:1个指定实体的类型实例)。</typepa…...

TCP 协议特性详解

TCP 协议特性总结 TCP协议特点TCP协议段格式TCP原理确认应答&#xff08;安全机制&#xff09;超时重传&#xff08;安全机制&#xff09;连接管理&#xff08;安全机制&#xff09;(面试高频题)三次握手四次挥手 滑动窗口&#xff08;效率机制&#xff09;流量控制&#xff08…...

电子招投标采购系统源码:采购过程更规范,更透明

满足采购业务全程数字化&#xff0c; 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购&#xff0c;是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说&#xff0c;这是个既省钱又能提高供应链效率的有效方法…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...