【Java】工具包(hutool)

一、介绍

hutool 工具包在市场上用的人是越来越多了,怎么能证明它的受欢迎程度呢?

有一个平台叫做 GitHub,它是国际性的代码托管平台,很多人,很多公司会将项目的源代码放到这个平台上面,所以是我们程序员最喜欢的一个网站,在这个网站上能找到很多很多各种各样的开源项目,因此这个网站也被我们程序员戏称为:最大的同性交友网站。

hutool 在GitHub上就是非常受欢迎的开源项目之一。

hutool 是国人开发的开源工具包,里面有很多帮助我们提高开发效率的API。

其中 Hu 是汉语拼音胡,是开发作者致敬前任公司。 tool 表示工具,两者一结合 hutool,它的开发者还给它赋予了一层寓意:难得糊涂,因此这个工具包我们也叫做 糊涂包,稀里糊涂的就把代码写完了。

在糊涂包中,有很多很多的工具类

比如:

​ DateUtil 日期时间工具类

​ TimeInterval 计时器工具类

​ StrUtil 字符串工具类

​ HexUtil 16进制工具类

​ HashUtil Hash算法类

​ ObjectUtil 对象工具类

​ ReflectUtil 反射工具类

​ TypeUtil 泛型类型工具类

​ PageUtil 分页工具类

​ NumberUtil 数字工具类

但是今天我们还是来学习跟 IO 相关的工具类,一共有七个工具类。

最后两个 FileReaderFileWriter 跟字符流中的两个类名重复了,所以在使用的一定要注意导包。

image-20240505113408893

二、相关网址

官网:
	https://hutool.cn/
中文使用文档:
	https://hutool.cn/docs/#/
API文档:
	https://apidoc.gitee.com/dromara/hutool/

1)官网

https://hutool.cn/

在官网上其实没有什么太多的信息,我们可以简单来看一下。

一开始是它的名字,后面是它最新的版本。

下面就是一些相关网址。

image-20240505114406944

往下拉,就是关于 Hutool 一些介绍

image-20240505114547526

再往下拉,点击就可以跳转到另外两个网址。

image-20240505114640407

再往下拉可以看见维护人员

image-20240505114655278

2)中文使用文档

https://hutool.cn/docs/#/

第二个才是真正有用的,在简洁中就是对 Hutool 做了一个介绍。

image-20240505114842454

再往下看,它说了 Hutool 里面包含了很多很多组件,每个组件里面又有不同的功能

我们主要的是来看这里的第四个:hutool-core,它是 hutool 的核心包,在这个核心包里面提供了很多很多的工具类。

我们现在要学习的 io相关 的就是在 core 这个包中,因此一会我们要找的也是 core 里面的东西。

image-20240505114935769

接下来我们就要来看一下 io 里面七个相关的类了。

image-20240505115202813

这些类里面都有什么样的方法,方法都有什么样的作用呢?此时就需要来看第三个网址。


3)API文档

https://apidoc.gitee.com/dromara/hutool/

由于 Hutool 是中国人写的,所以它后面的解释都是中文的,我们在学习起来的时候非常的轻松。

在刚开始打开的页面中,就是 Hutool 里面所有的包和每个包的作用。

首先来找 core包,这个包是核心包

但是在这个包里面还有很多很多的子包,每个子包又有自己的作用。

例如 core.bean 就是跟JavaBean相关的

image-20240505115637507

core.clone,就是跟克隆相关的。

image-20240505115717282

core.date ,跟时间相关的。

image-20240505115801261

再往下找,core.io,就是跟我们现在所学习的 io 所相关的,因此一会我们要找的就是 core.io 这个包下。

image-20240505115903374

怎么找?

首先看左边上面,先选择包名,找到 core.io 点击。

然后下面就会出现在 io包 下所有的类。

image-20240505120002200

首先找 IoUtil,看左边,IoUtil 中所有的方法和解释都出来了。

image-20240505120113054

如果你想看 FileUtil 也一样

这些方法我们甚至都不需要自己练,看后面的解释都会了。

例如第一个 appendLines方法:将列表写入文件,追加模式。

这里的列表可以理解为单列集合,因为方法的参数类型是 Collection

image-20240505120158909

如果不想追加,想清空,此时就可以继续往下找,可以找到 writeLines,表示将集合里面的数据写到文件中,但是会覆盖。

image-20240505120355527

既然有写,那肯定有读的相关方法。

例如下面方法,它可以将文件里的数据读到一个集合中返回,返回值就是一个集合。

image-20240505120542265

如果我现在不讲,让你用里面的方法,也只是可以使用的。这就是打基础的重要性,你可以很快上手,而且看到这个方法,你也差不多知道它的底层是怎么写的了。


三、代码示例

因为糊涂包不是我们自己写的,也不是Java写的,而是第三方写的,因此还是需要导入它的jar包。

在使用的时候要注意了,JDK版本一定要是8或者8以上的。

image-20240505113846429

还是以下步骤,这里就不截图了

1,新建lib文件夹

2,把第三方jar包粘贴到文件夹中

3,右键点击add as a library

下面会对 File类 里面一些好用的、常见方法做一个演示,由于下面的方法都是静态的,因此可以直接使用类名调用。

//导包的时候一定不要导错包
import cn.hutool.core.io.FileUtil;

1)file()

file:根据参数创建一个file对象

ctrl + p 来看下它的参数

它可以将一个字符串所表示的路径变成 File对象,还可以将父级路径跟子级路径做一个拼接,这两个功能跟之前所学习的 File 的构造方法是完全一模一样的。

还没完,它的强大之处在下面两个构造方法。

String... names:可变参数,因此我们可以在小括号中传入多个参数一起进行拼接。

image-20240505121203427
File file1 = FileUtil.file("D:\\", "aaa", "bbb", "a.txt");
System.out.println(file1);//D:\aaa\bbb\a.txt

2)touch()

touch:根据参数创建文件

那是不是跟我们之前所学习的 createNewFile() 是一样的呢?

File f = new File("a.txt");
f.createNewFile(); // 此时可以创建一个新的空的文件

但是 createNewFile() 如果父级路径是不存在的,那么方法会有IOException异常。

此时这个 touch() 就非常的强悍了,如果父级路径不存在,它不会报错,它会帮你把父级路径一起创建出来

File touch = FileUtil.touch(file1);
System.out.println(touch);

3)writeLines()

writeLines:把集合中的数据写出到文件中,覆盖模式。

ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("aaa");
list.add("aaa");

//细节:糊涂包的相对路径,不是相对于当前项目而言的,而是相对class文件而言的
File file2 = FileUtil.writeLines(list, "D:\\a.txt", "UTF-8");
System.out.println(file2);

此时会有两个效果:集合中的数据已经写到了文件中,并且文件中的东西也被覆盖。

image-20240505122239684

PS:如果是自定义对象,它会去调用对象的 toString() 写入文件中,因此我们往往需要改写 toString(),改成我们想要的格式。


4)appendLines()

appendLines:把集合中的数据写出到文件中,续写模式。

ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("aaa");
list.add("aaa");
File file3 = FileUtil.appendLines(list, "D:\\a.txt", "UTF-8");
System.out.println(file3);

效果如下

image-20240505122440121

5)readLines()

readLines:指定字符编码,把文件中的数据,读到集合中。

第三个参数其实是可以传递一个集合的,此时它会将 a.txt 文件里的数据进行读取,读完后放到集合中,然后再将这个集合给你返回

image-20240505122631181

但是这么写太麻烦了,干嘛要自己创建集合,直接让方法帮我们创建,因此下面我们调用两个参数的方法,这个方法底层会帮我们创建集合。

在读的时候有个特点:一行数据它认为是集合中的一个元素。

List<String> list = FileUtil.readLines("D:\\a.txt", "UTF-8");
System.out.println(list);
### 回答1: Hutool是一个Java工具类库,其中包含了许多实用的工具类,其中就包括导出Excel的工具类。Hutool的Excel工具类可以方便地将Java对象导出为Excel文件,支持多种Excel格式,同时也支持自定义Excel样式。使用Hutool的Excel工具类,可以大大简化Java开发者的Excel导出工作。 ### 回答2: Hutool是一个Java工具类库,其中包括多个实用工具类,包括导出Excel功能。Hutool导出Excel工具类使用方便,提供丰富的API,可以满足大部分的导出需求。 Hutool导出Excel工具类支持多种导出方式,如导出到本地文件、导出到输出流、导出到HTTP响应等,方便不同场景下的使用。同时,Hutool导出Excel工具类支持导出自定义样式的Excel文档,可以按照自己的需求设置样式。 使用Hutool导出Excel工具类只需要引入相关的依赖即可,具体使用步骤如下: 1.添加依赖 在Maven项目中,需要在pom.xml文件中添加如下依赖: ``` <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>x.x.x</version> </dependency> ``` 其中x.x.x为Hutool的版本号,根据自己的需求选择。 2.构建Excel数据 使用Hutool导出Excel工具类需要先构建Excel文档中的数据,可以通过读取数据库或其他方式获取数据,并将数据封装为List或其他集合形式。 3.导出Excel文档 Hutool导出Excel工具类的API非常丰富,可以根据自己的需求选择不同的导出方式和样式。下面是一个基本的导出Excel文档的例子: ``` //构建Excel数据 List<User> userList = userService.getAllUsers(); //设置导出Excel文件名 String fileName = "用户列表.xlsx"; //设置导出Excel表格的表头 String[] headers = {"ID", "用户名", "邮箱"}; //设置导出Excel表格的数据 List<String[]> data = new ArrayList<>(); for (User user : userList) { String[] row = {String.valueOf(user.getId()), user.getUsername(), user.getEmail()}; data.add(row); } //导出Excel文档到本地文件 ExcelUtil.exportExcel(fileName, headers, data); ``` 以上代码中,首先通过userService.getAllUsers()方法获取用户列表数据,然后设置导出Excel文件名、表头和数据,最后调用ExcelUtil.exportExcel()方法导出Excel文档到本地文件。 总之,Hutool导出Excel工具类提供了方便、灵活的API,可以快速地完成Excel的导出功能。该工具类的使用非常简单,只需要几行代码即可完成整个导出过程。在处理Excel导出的场景下,Hutool是一个非常值得推荐的Java工具类库。 ### 回答3: Hutool是一款Java工具类库,其中包含了丰富的工具类以及函数库,实现了诸多常用的功能。Hutool的特点是轻量级、使用简单、性能高效、功能强大,是很多Java开发者常用的工具。 其中,Hutool的Excel模块中封装了导出Excel的功能,实现了轻松生成Excel文件的功能。使用Hutool导出Excel的步骤非常简单,首先我们需要创建ExcelWriter对象,调用write方法,写入数据,然后调用flush方法,将数据写入到Excel文件中,最后关闭ExcelWriter对象,释放资源。 在创建ExcelWriter对象时,我们需要指定输出流以及Excel文件格式。对于输出流,我们可以使用OutputStream,也可以直接指定输出文件路径。对于Excel格式,Hutool支持多种格式,如xls、xlsx、ods等。 在调用write方法时,我们可以使用不同的参数类型,如List、Map、Collection等来传递数据源,或者手动指定列名称、列类型、列宽、样式等信息。此外,Hutool还提供了一些方便的方法,如自适应列宽、数据类型转换等,使得数据导出更加灵活便捷。 总之,Hutool是一款十分实用的Java工具类库,其Excel模块的导出功能便捷、易用、高效,为Java开发者提供了很多便利。对于需要进行数据导出的项目,使用Hutool可以更加快速、高效地实现数据导出,并提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值