浅谈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)等,简单易用,方便快捷。
- 读取文件
读取文件是我们编写应用程序时必不可少的一项操作。FileUtil提供了读取文件的方法,代码非常简单,示例代码如下:
String content = FileUtil.readUtf8String("文件路径");//将UTF-8编码格式的文件读取到字符串中
FileUtil.readUtf8String()方法会自动判断文件编码格式,如果是UTF-8编码,则将该文件读取为字符串并返回。如果不是UTF-8编码,则会将文件转换为UTF-8编码再返回。
- 写入文件
写入文件是我们在应用程序中常用的一项操作,FileUtil提供了完整的写入文件操作的方法。以下是写入文件的示例代码:
String content = "这是写入文件的内容";
FileUtil.writeUtf8String(content, "文件路径");
FileUtil.writeUtf8String()方法会将content字符串写入到指定路径的文件中,使用UTF-8编码格式。
- 追加文件
在某些情况下,我们需要对某个已存在的文件进行追加操作,FileUtil也提供了相应的方法,如下所示:
String content = "这是追加的内容";
FileUtil.appendUtf8String(content, "文件路径");
FileUtil.appendUtf8String()方法会将content字符串追加到指定文件的末尾。
- 创建文件
当我们需要在本地磁盘中创建一个新的文件时,可以使用FileUtil提供的方法来实现创建文件的操作,如下所示:
File file = FileUtil.touch("文件路径");
FileUtil.touch()方法可以用来创建文件,如果文件已经存在,则更新修改时间,如果不存在,则会新建该文件。
- 判断文件是否存在
有时候我们需要在操作文件之前先判断文件是否存在,如果文件不存在,则需要进行相应的处理,FileUtil也提供了相应的方法来完成该操作,如下所示:
boolean isExists = FileUtil.exist("文件路径");
该方法会返回一个boolean类型的值,如果文件存在返回true,否则返回false。
- 复制文件
当我们需要将一个文件复制到另一个文件时,可以使用FileUtil提供的方法来进行文件复制操作,如下所示:
FileUtil.copy("源文件路径", "目标文件路径", true);//true表示如果目标文件不存在,则新建一个文件进行复制
FileUtil.copy()方法可以用来进行文件复制,如果目标文件不存在,则会新建一个文件进行复制。
- 删除文件
当我们不需要某个文件时,可以使用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工具类库,它封装了很多常用的Java工具类,如加密解密、文件操作、日期时间处理、Http客户端等。它的目标是让Java开发变得更加简单、高效。 二、Hutool的特点 高效:提供了很多高效的工具类和方法。 简单&…...

Mac终端代理
1.打开代理查看代理端口号 打开设置,点击网络,点击详细信息,点击代理查看代理端口号。 2.修改环境变量 1)终端输入下面命令 vim .zshrc 2)在.zshrc文件里添加下面两段内容(注意: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证书是自签名的,或者SSL证书链有问题,就会发生这种情况。 $ git clone https://githu…...
第八章 文件与异常
引言 码字不易,如果这篇文章对您有帮助的话,希望您能点赞、收藏、加关注!您的鼓励就是我前进的动力! 目录 一、读取文件(一)读取文件:open(), with, read()(二)文件路径…...

Gradle使用
下载Gradle Gradle Distributions 配置环境变量 测试是否成功 cmd输入gradle -v 在.gradle目录下创建一个init.gradle allprojects { repositories { maven { url file:///D:/maven/myRepository} ## 这里是本地maven仓库地址,没有就会依次向下设置的地址寻…...
从七个方面聊聊Linux到底强在哪
从事计算机相关行业的同学不难发现,身边总有一些朋友在学习linux,有的开发同学甚至自己的电脑就是它。经常听他们说linux如何好用等等。那么linux到底好在那里,能让大家如此喜欢。这也是我经常问自己的一个问题。下面我将通过以下七点来为大家…...

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

多处最优服务次序问题——算法设计与分析(C实现)
问题描述:设有n个顾客同时等待一项服务。顾客i需要的服务时间为,共有s处可以提供此项服务。应该如何安排n个顾客的服务次序,才能使平均等待时间达到最小?平均等待时间是n个顾客的等待服务时间的总和除以n。 算法设计:对…...

2023 年 IntelliJ IDEA 下载安装教程,超详细图文教程,亲测可用
. IDEA 下载 1、打开浏览器输入https://www.jetbrains.com/,进入 Jetbrains官网,点击 Developer Tools,再点击 Intellij IDEA 2、点击中间的 Download,进入IDEA下载界面 3、选择左边的 Ultimate 版本进行下载安装。Ultimate 版…...

前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景
章节一:引言 在当前的互联网开发中,前端框架已经成为了不可或缺的一部分。然而,前端框架如此之多,该如何选择呢?Vue.js、React和AngularJS是目前比较受欢迎的三个前端框架,它们各自有着不同的优缺点和应用…...
JavaScript中的数据可视化和动画效果
摘要: JavaScript是一种强大而灵活的编程语言,被广泛用于网页开发和交互设计。在数据可视化和动画效果方面,JavaScript提供了丰富的工具和库,使开发者能够创建出令人印象深刻的交互式数据可视化和动画效果。本文将介绍JavaScript中…...

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

Java版企业电子采购招标系统源码
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...

【操作系统复习】第6章 虚拟存储器 2
请求分页中的内存分配 在为进程分配物理块时,要解决下列的三个问题: 1. 保证进程可正常运行所需要的最少物理块数 2. 每个进程的物理块数,是固定值还是可变值(分配策略) 3. 不同进程所分配的物理块数ÿ…...

【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集群管理和开发效率:提高大数据应用部署和管理效率的利器
📬📬我是上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货,欢迎关注。 介绍 Hadoop是一种开源的分布式处理框架,用于在一组低成本硬件的集群上存储和处理大规模数据集。Ambari是一种基…...

Day3--C高级3
一.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 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原理确认应答(安全机制)超时重传(安全机制)连接管理(安全机制)(面试高频题)三次握手四次挥手 滑动窗口(效率机制)流量控制(…...
电子招投标采购系统源码:采购过程更规范,更透明
满足采购业务全程数字化, 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购,是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说,这是个既省钱又能提高供应链效率的有效方法…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...