引入全部工具类库
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.10</version></dependency>
引入核心类库-包括集合、字符串、Bean等工具
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>5.3.10</version></dependency>
hutool-core中常用api
1.生成随机32位uuid
IdUtil.fastSimpleUUID()
2.身份证号常用工具
是否有效身份证号
IdcardUtil.isValidCard(idCard)
根据身份编号获取年龄
IdcardUtil.getAgeByIdCard(idCard)
根据身份编号获取性别(1 : 男 , 0 : 女)
IdcardUtil.getGenderByIdCard(idCard)
根据身份编号获取户籍省份
IdcardUtil.getProvinceByIdCard(idCard)
身份证号脱敏,显示前4后3
IdcardUtil.hide(idCard,4,15)
根据身份编号获取生日
IdcardUtil.getBirth(idCard)
3.正则相关工具类
英文字母或数字或下划线
Validator.isGeneral(content)
移动电话
Validator.isMobile(content)
是否为字母
Validator.isWord(content)
是否为数字
Validator.isNumber(content)
身份证号码
Validator.isCitizenId(content)
邮件
Validator.isEmail(content)
是否是汉子,是否包含汉字
Validator.isChinese(content)Validator.hasChinese(content)
4.文件处理类
读取文件字节流
FileUtil.readBytes(path);
文件是否存在
FileUtil.exist(path)
是否绝对路径
FileUtil.isAbsolutePath(path)
是不是目录
FileUtil.isDirectory(path)
是不是文件
FileUtil.isFile(path)
文件夹是不是空的
FileUtil.isDirEmpty(dir)
循环指定目录以及子目录下的所有文件
FileUtil.loopFiles(dirPath).forEach(loopFile->{System.out.println(loopFile.getName());});
循环指定目录以及子目录下的所有满足条件的文件
FileUtil.loopFiles(dirPath,fileFilter-> FileUtil.isNotEmpty(fileFilter)).forEach(loopFile->{System.out.println(loopFile.getName());});
循环指定深度目录以及子目录下的所有满足条件的文件
FileUtil.loopFiles(FileUtil.file(dirPath),1,fileFilter-> FileUtil.isNotEmpty(fileFilter)).forEach(loopFile->{System.out.println(FileTypeUtil.getType(loopFile));});
获取文件类型
FileTypeUtil.getType(loopFile);FileTypeUtil.getTypeByPath(path)
复制文件
FileUtil.copy(path,destPath,false);
5.http工具类
常用get,post请求
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.32</version></dependency>
import cn.hutool.http.HttpRequest;import cn.hutool.http.HttpResponse;import cn.hutool.http.HttpUtil;import com.alibaba.fastjson.JSON;import lombok.extern.slf4j.Slf4j;import java.util.HashMap;import java.util.Map;@Slf4jpublic class MyHttpUtil {public Map<String, Object> executeGetRequest(String url, Map<String, Object> params, String token) {long startTime = System.currentTimeMillis();Map<String, Object> result = new HashMap<>();try {HttpRequest httpRequest = HttpUtil.createGet(url);httpRequest.form(params);httpRequest.header("Authorization", token);HttpResponse httpResponse = httpRequest.execute();String strResult = httpResponse.body();long endTime = System.currentTimeMillis();log.info(strResult);result = JSON.parseObject(strResult, Map.class);log.info("调用时间:" + (endTime - startTime) + "ms"); //输出程序运行时间result.put("returnCode", "2000");return result;}catch (Exception e) {log.error(e.getMessage(),e);result.put("returnCode", "4000");result.put("data", null);return result;}}public Map<String, Object> executePostRequest(String url, Map<String, Object> params, String token) {long startTime = System.currentTimeMillis();Map<String, Object> result = new HashMap<>();try {HttpRequest httpRequest = HttpUtil.createPost(url);httpRequest.header("Authorization", token);String body = JSON.toJSONString(params);httpRequest.body(body);HttpResponse httpResponse = httpRequest.execute();String strResult = httpResponse.body();long endTime = System.currentTimeMillis();log.info(strResult);result = JSON.parseObject(strResult, Map.class);log.info("调用时间:" + (endTime - startTime) + "ms"); //输出程序运行时间result.put("returnCode", "2000");return result;}catch (Exception e) {log.error(e.getMessage(),e);result.put("returnCode", "4000");result.put("data", null);return result;}}}
package com.study.hutool.http;import cn.hutool.http.HttpRequest;import com.alibaba.fastjson.JSON;import .Authenticator;import .InetSocketAddress;import .PasswordAuthentication;import .Proxy;import java.util.Map;/*** hutool方式http工具类* 支持https请求(默认不验证ssl证书及所有域名被信任)*/public class HttpUtil {/*** POST请求** @param url* @param request* @param headers* @return*/public static String post(String url, Map<String, Object> request, Map<String, String> headers) {String resStr = HttpRequest.post(url).form(request).addHeaders(headers).execute().body();return resStr;}/*** POST请求* 请求对象转json格式** @param url* @param request* @param headers* @return*/public static String post(String url, Object request, Map<String, String> headers) {String resStr = HttpRequest.post(url).body(JSON.toJSONString(request)).addHeaders(headers).execute().body();return resStr;}/*** get请求** @param url* @param headers* @return*/public static String get(String url, Map<String, String> headers) {String resStr = HttpRequest.get(url).addHeaders(headers).execute().body();return resStr;}/*** put请求** @param url* @param headers* @param request* @return*/public static String put(String url, Map<String, String> headers, Map<String, Object> request) {String resStr = HttpRequest.put(url).addHeaders(headers).form(request).execute().body();return resStr;}/*** 配置代理* @param url* @param headers* @param request* @param host* @param port* @param authUser* @param authPassword* @return*/public static String proxy(String url, Map<String, String> headers, Map<String, Object> request, String host, int port, String authUser, String authPassword) {if (null != authUser) {//如果遇到https代理错误Proxy returns "HTTP/1.0 407 Proxy Authentication Required",可以尝试System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");Authenticator.setDefault(new Authenticator() {@Overridepublic PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(authUser, authPassword.toCharArray());}});}String resStr = HttpRequest.post(url)//此处代理类型http.setProxy(new Proxy(Proxy.Type.HTTP,new InetSocketAddress(host, port))).form(request).addHeaders(headers).execute().body();return resStr;}}