Hutool开发工具包

Hutool官网

Hutool参考文档

Hutool API文档

安装(Maven)

1
2
3
4
5
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.6</version>
</dependency>

用法介绍

这里只介绍一些我觉得经常用和有意思的用法,具体的用法参见参考文档

类型转换
  1. 转换字符串
1
2
3
long[] b = {1,2,3,4,5};
String bStr = Convert.toStr(b);
//bStr为:"[1, 2, 3, 4, 5]"
  1. 转换为指定类型数组
1
2
3
4
5
String[] b = { "1", "2", "3", "4" };
Integer[] intArray = Convert.toIntArray(b);

long[] c = {1,2,3,4,5};
Integer[] intArray2 = Convert.toIntArray(c);
  1. 转换为日期对象
1
2
String a = "2017-05-06";
Date value = Convert.toDate(a);
  1. 编码转换
1
2
3
4
5
String a = "我不是乱码";
//转换后result为乱码
String result = Convert.convertCharset(a, CharsetUtil.UTF_8, CharsetUtil.ISO_8859_1);
String raw = Convert.convertCharset(result, CharsetUtil.ISO_8859_1, "UTF-8");
Assert.assertEquals(raw, a);
  1. 时间单位转换
1
2
3
4
//主要用于转换时长单位,比如一个很大的毫秒,我想获得这个毫秒数对应多少分
long a = 4535345;
long minutes = Convert.convertTime(a, TimeUnit.MILLISECONDS, TimeUnit.MINUTES);
//结果为:75

IOUtil

拷贝

1
2
3
BufferedInputStream in = FileUtil.getInputStream("d:/test.txt");
BufferedOutputStream out = FileUtil.getOutputStream("d:/test2.txt");
long copySize = IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);

RuntimeUtil

  1. execForStr 执行系统命令,返回字符串
  2. execForLines 执行系统命令,返回行列表
1
2
String str = RuntimeUtil.execForStr("ipconfig");
//获取网卡信息

IdUtil

1
2
3
4
5
//生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid = IdUtil.randomUUID();

//生成的是不带-的字符串,类似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID = IdUtil.simpleUUID();

Assert断言

Java中有assert关键字,但是存在许多问题:

  1. assert关键字需要在运行时候显式开启才能生效,否则你的断言就没有任何意义。
  2. 用assert代替if是陷阱之二。assert的判断和if语句差不多,但两者的作用有着本质的区别:assert关键字本意上是为测试调试程序时使用的,但如果不小心用assert来控制了程序的业务流程,那在测试调试结束后去掉assert关键字就意味着修改了程序的正常的逻辑。
  3. assert断言失败将面临程序的退出。

相应的,在Hutool中封装了更加友好的Assert类,用于断言判定。

  • isTrue 是否True
  • isNull 是否是null值,不为null抛出异常
  • notNull 是否非null值
  • notEmpty 是否非空
  • notBlank 是否非空白符
  • notContain 是否为子串
  • noNullElements 数组中是否包含null元素

Base64编码解码

1
2
3
4
5
6
String a = "我是一个非常长的字符串";
String encode = Base64.encode(a);
Assert.assertEquals("5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5Liy", encode);

String decodeStr = Base64.decodeStr(encode);
Assert.assertEquals(a, decodeStr);

加密解密

签名和验证签名

-------- ♥感谢阅读♥ --------