编码工具
16进制工具
TestHex.java
1 | package cn.how2j.test; |
转义工具
TestEscape.java
1 | package cn.how2j.test; |
Hash工具
TestHash.java
1 | package cn.how2j.test; |
URL工具
TestURL.java
1 | package cn.how2j.test; |
Base32-64工具
TestIdBase32_64.java
1 | package cn.how2j.test; |
Unicode工具
TestUnicode.java
1 | package cn.how2j.test; |
常用辅助类工具
转换工具
TestConverter.java
1 | package cn.how2j.test; |
日期工具
TestDate.java
1 | package cn.how2j.test; |
字符串工具 - StrUtil
1 | import static cn.hutool.core.util.StrUtil.*; |
与空判断相关的
1 | public static boolean isBlank(CharSequence str) |
头尾处理
1 | public static String trim(CharSequence str) |
包含与否
1 | public static boolean startWith(CharSequence str, char c) |
setter gettter 处理
1 | public static String getGeneralField(CharSequence getOrSetMethodName) |
删除
1 | public static String removeAll(CharSequence str, CharSequence strToRemove) |
大小写
1 | public static String upperFirstAndAddPre(CharSequence str, String preString) |
分割
1 | public static String[] splitToArray(CharSequence str, char separator) |
截取
1 | public static String sub(CharSequence str, int fromIndex, int toIndex) |
创建字符串
1 | public static String repeat(char c, int count) |
是否相等
1 | public static boolean equals(CharSequence str1, CharSequence str2) |
格式化
1 | public static String format(CharSequence template, Object... params) |
获取字节
1 | public static byte[] utf8Bytes(CharSequence str) |
转换为字符串
1 | public static String utf8Str(Object obj) |
格式转换
1 | public static String toUnderlineCase(CharSequence str) |
包裹
1 | public static String wrap(CharSequence str, CharSequence prefixAndSuffix) |
填充
1 | public static String padPre(CharSequence str, int minLength, char padChar) |
获取其他对象
1 | public static StrBuilder strBuilder() |
出现次数
1 | public static int count(CharSequence content, CharSequence strForSearch) |
摘要和隐藏
1 | public static String brief(CharSequence str, int maxLength) |
比较
1 | public static int compare(final CharSequence str1, final CharSequence str2, final boolean nullIsLess) |
获取索引位置
1 | public static int indexOf(final CharSequence str, char searchChar) |
追加
1 | public static String appendIfMissing(final CharSequence str, final CharSequence suffix, final CharSequence... suffixes) |
替换
1 | public static String replaceIgnoreCase(CharSequence str, CharSequence searchStr, CharSequence replacement) |
相似度
1 | public static double similar(String str1, String str2) |
其他
1 | //总长度 |
数字工具
TestNumber.java
1 | package cn.how2j.test; |
数组工具
TestArray.java
1 | package cn.how2j.test; |
随机工具
TestRandom.java
1 | package cn.how2j.test; |
比较器工具
TestComparator.java
1 | package cn.how2j.test; |
多线程工具
TestThread.java
1 | package cn.how2j.test; |
缓存工具
TestCache.java
1 | package cn.how2j.test; |
定时器工具
HutoolCronTask
1 | package cn.how2j; |
cron.settings
配置文件,cron.settings
, 要放在 /resources/config
目录下。
1 | [cn.how2j] |
TestCron
1 | package cn.how2j; |
用代码添加任务
1 | package cn.how2j; |
类和对象
反射工具
TestReflection.java
1 | package cn.how2j.test; |
类工具
获取方法
1 | public static Set<String> getPublicMethodNames(Class<?> clazz) |
获取字段
1 | public static Field getDeclaredField(Class<?> clazz, String fieldName) |
调用方法
1 | public static <T> T invoke(String classNameDotMethodName, Object[] args) |
系统工具
粘贴板工具
TestClipboard
1 | package cn.how2j.test; |
运行时工具
TestRuntime
1 | package cn.how2j.test; |
系统属性工具
TestSystem
1 | package cn.how2j.test; |
文件相关
文件IO工具
- Hutool 里的文件IO工具有好几个
- IOUtil :操作流的
- FileUtil :操作文件的
- FileTypeUtil: 被包含在FileUtil里了
- FileReader,FileWriter:这两个基本上都在FileUtil里用了
- WatchMonitor: 用来监控文件变化, 这个比较有意思,可以看看自己c盘,平时文件都有什么变化。
- ClassPathResource 是class 路径下资源的获取
IOUtil
把输入流的数据复制到输出流中
1
2
3
4
5
6
7
8
9
10
11 long copy(InputStream in, OutputStream out)
```
> 读取输入流的内容为字符串
```java
String read(InputStream in, String charsetName)
```
> 把数据写出到输出流中
```java
void writeUtf8(OutputStream out, boolean isCloseOut, Object... contents)
FileUtil
是否是windows系统 (通过分隔符进行判断)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 boolean isWindows
```
> 追加数据
```java
File appendString(String content, File file, String charset)
```
> 遍历当前目录及其子目录
```java
List<File> loopFiles(String path)
```
> 目录及其子目录所有文件的大小总和
```java
long size(File file)
```
> 创建文件,会自动创建父文件夹。 方法名故意用linux下的命令名
```java
File touch(String fullFilePath)
```
> 删除文件或者目录(这个很危险,会自动删除当前目录以及子目录,慎用)
```java
boolean del(String fullFileOrDirPath)
```
> 同上
```java
static boolean clean(String dirPath)
```
> 复制文件或者目录
```java
File copyFile(String src, String dest, StandardCopyOption... options)
```
> 判断俩文件内容是否一样
```java
boolean contentEquals(File file1, File file2)
```
> 获取后缀名,不带.
```java
String extName(String fileName)
```
> 根据文件头部信息获取文件类型
```java
String getType(File file)
```
> 读取内容为字符串
```java
readString(String path, String charsetName)
```
> 读取内容为集合
```java
List<String> readLines(String path, String charset)
```
> 把字符串写入到文件
```java
File writeString(String content, String path, String charset)
```
> 把集合写入到文件
```java
File writeLines(Collection<T> list, File file, String charset)
```
> 转换文件编码,第一个参数必须和文件本身编码保持一致,否则就会出错。比如一个文件是GBK的,但是在UTF默认编码的环境下看到都是乱码,就可以通过这个转换一下
```java
File convertCharset(File file, Charset srcCharset, Charset destCharset)
```
> 指定换行符,有些文件从Linux搞来的,在window下换行会混乱,可以用这个进行转换
```java
convertLineSeparator(File file, Charset charset, LineSeparator lineSeparator)
```
> 获取CRC32校验码
```java
long checksumCRC32(File file)
```
> 获取Web项目下的web root路径
```java
File getWebRoot()
```
> 根据文件后缀名 (不一定是真实格式),获取其mimetype
```java
String getMimeType(String filePath)
WatchMonitor
这是监控 F:/game 目录下所有文件的增删改。
站长启动了 “They Are Billions”, 就观察到了这么一些文件变化,哈哈~
1 | package cn.how2j; |
ClassPathResource
ClassPathResource 是专门用来读取classpath 里的数据的,很方便。
如代码所所示,读取 hutoool jar 包里的:META-INF/MANIFEST.MF 文件并打印出来了。。。
如果不是用ClassPathResource ,要做还略麻烦的呢
TestFile.java
1 | package cn.how2j.test; |
图片工具
- 缩放 scale
- 切割 cut
- 切片 slice
- 类型转换 convert
- 灰度 gray
- 添加文字水印 pressText
- 添加图片水印 pressImage
- 旋转 rotate
- 水平翻转 flip
- 图片变成BASE-64字符串 toBase64
- 创建字体 createFont
- 根据文字创建图片 createImage
- 读取图片 read
- 随机颜色 randomColor
CSV工具
TestCVS.java
1 | package cn.how2j.test; |
图形验证码工具
TestCaptcha.java
1 | package cn.how2j.test; |
第三方相关
邮件工具
TestMail.java
1 | package cn.how2j.test; |
pom.xml
从现在开始,都是需要第三方包 才能使用的 hutool 功能了。
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
qq邮箱
关于qq邮箱如果要使用,密码要使用授权码。 授权码的获取手段:
https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
二维码工具
pom.xml
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
TestQR.java
1 | package cn.how2j.test; |
FTP工具
pom.xml
1 | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
TestFtp.java
1 | package cn.how2j.test; |
其他
网络工具
TestNet.java
1 | package cn.how2j.test; |
压缩工具
TestZip.java
1 | package cn.how2j.test; |
正则工具
TestRegex.java
1 | package cn.how2j.test; |
校验工具
TestValidator.java
1 | package cn.how2j.test; |
归纳
Validator 把一些常用的校验工具准备好了,提供给大家直接使用。
用法都很简单,这里站长稍做整理,归纳了一下。
- 为空判断
isNull
isEmpty - 字母,数字和下划线
isGeneral - 至少多长的
isGeneral(String value, int min) - 给定范围的
isGeneral(String value, int min, int max) - 数字
isNumber - 给定范围的数字
isBetween(Number value, Number min, Number max) - 纯字母
isLetter - 大小写
isUpperCase
isLowerCase - ip4
isIpv4 - 金额
isMoney - 邮件
isEmail - 手机号码
isMobile - 18位身份证
isCitizenId - 邮编
isZipCode - 出生年月日
isBirthday - URL
isUrl - 汉字
isChinese - 汉字,字母,数字和下划线
isGeneralWithChinese - mac地址
isMac - 中国车牌
isPlateNumber - uuid
isUUID
身份证工具
TestIdCard.java
1 | package cn.how2j.test; |