JAVA工具类Hutool介绍与使用

Hutools是一个简单易使用的开源工具类

官方参考文档 https://hutool.cn/docs

常用功能

  • 字符串工具
  • 时间操作、转化、对比工具
  • 文件读取、写入、下载等
  • 数据库链接、增删改查
  • HTTP客户端、网络请求、响应
  • JSON解析、格式化、调用
  • 图片操作、缩放、裁剪
  • 加密、解密、MD5、RSA、AES、DES
  • 邮件工具
  • 二维码工具
  • Excel工具
  • 图形验证码

高级功能

  • JDK动态代理封装,提供非IOC下的切面支持
  • 简单缓存实现
  • Bean操作
  • 定时任务
  • 模板引擎、Emoji、FTP、分词
  • 脚本执行封装
  • 系统参数调用封装(JVM信息等)
  • 基于Java的NIO和AIO的Socket封装

安装

Maven环境

<dependency>
    <groupId>cn.hutoolgroupId>
    <artifactId>hutool-allartifactId>
    <version>5.5.9version>
dependency>

Gradle环境

compile 'cn.hutool:hutool-all:5.5.9'

常用功能工具使用案例

字符串工具
String s = " ";
StrUtil.isBlank(s);//判断是否为空,null,"",不可见字符(空格)都为空
StrUtil.isNotBlank(s);//上面的反例
StrUtil.lowerFirst(s);//首字母小写
StrUtil.maxLength(s, 10);//限制字符串长度,如果超过指定长度,截取指定长度并在末尾加"..."
StrUtil.uuid();//生成随机UUID
时间操作、转化、对比工具
Date date = DateUtil.date();//当前时间
Date date2 = DateUtil.date(System.currentTimeMillis());//当前时间
String now = DateUtil.now();//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String today= DateUtil.today();//当前日期字符串,格式:yyyy-MM-dd
String dateStr = "2017-03-01";
date = DateUtil.parse(dateStr);//字符串转日期,方法会自动识别一些常用格式,yyyy-MM-dd HH:mm:ss,yyyy-MM-dd
DateTime newDate = DateUtil.offsetDay(date, 3);//时间偏移,当前时间+3天
DateTime newDate2 = DateUtil.offsetHour(date, -3);//时间偏移,当前时间-3小时
long betweenDay = DateUtil.between(date, date2, DateUnit.DAY);//计算时间差,单位可自定义
String zodiac = DateUtil.getZodiac(1, 19);//获取星座
int age = DateUtil.ageOfNow("1990-01-30");//计算年龄
数据库链接、增删改查
//使用前先配置数据源,引入JDBC jar包
Entity record = new Entity();
record.setTableName("table_name");
record.set("field", "value");
Db.use().insert(record);//插入
Entity where = new Entity();
where.set("id", 1);
Db.use().del(where);//删除
Db.use().update(record, where);//修改
List<Entity> records = Db.use().find(where);//查询
HTTP客户端、网络请求、响应
//Get请求
String result1= HttpUtil.get("url");
String result2= HttpUtil.get("url", CharsetUtil.CHARSET_UTF_8);
//Post请求
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");
String result= HttpUtil.post("url", paramMap);
//下载文件
HttpUtil.downloadFile("url", "目录/文件名");
//自定义请求
HttpCookie cookie = new HttpCookie("cookieKey", "cookieValue");
HttpCookie cookie2 = new HttpCookie("cookieKey", "cookieValue");
HttpResponse res = HttpUtil.createGet("url").header("headerKey","headerValue").cookie(cookie,cookie2).execute();
int httpStatus = res.getStatus();
String body = res.body();
加密、解密
SecureUtil.md5("需要加密的信息");
SecureUtil.des().encrypt("需要加密的信息");
SecureUtil.des().decrypt("需要解密的信息");
SecureUtil.aes().encrypt("需要加密的信息");
SecureUtil.aes().decrypt("需要解密的信息");

RSA rsa = new RSA();
//获得私钥
rsa.getPrivateKey();
rsa.getPrivateKeyBase64();
//获得公钥
rsa.getPublicKey();
rsa.getPublicKeyBase64();
//公钥加密,私钥解密
byte[] encrypt = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PublicKey);
byte[] decrypt = rsa.decrypt(encrypt, KeyType.PrivateKey);
//私钥加密,公钥解密
byte[] encrypt2 = rsa.encrypt(StrUtil.bytes("我是一段测试aaaa", CharsetUtil.CHARSET_UTF_8), KeyType.PrivateKey);
byte[] decrypt2 = rsa.decrypt(encrypt2, KeyType.PublicKey);
二维码工具
//需要引入二维码依赖
<dependency>
    <groupId>com.google.zxinggroupId>
    <artifactId>coreartifactId>
    <version>3.3.3version>
dependency>
QrConfig config = new QrConfig(300, 300);
// 设置边距,既二维码和背景之间的边距
config.setMargin(3);
// 设置前景色,既二维码颜色(青色)
config.setForeColor(Color.CYAN.getRGB());
// 设置背景色(灰色)
config.setBackColor(Color.GRAY.getRGB());
// 生成二维码到文件,也可以到流
QrCodeUtil.generate("http://hutool.cn/", config, FileUtil.file("e:/qrcode.jpg"));
//附带logo小图标二维码
QrCodeUtil.generate(//
    "二维码内容", //二维码内容
    QrConfig.create().setImg("c:/logo.jpg"), //附带logo
    FileUtil.file("c:/qrcode.jpg")//写出到的文件
);
//解析二维码文件
String decode = QrCodeUtil.decode(FileUtil.file("c:/qrcode.jpg"));
图形验证码
//定义图形验证码的长和宽
LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(200, 100);
//图形验证码写出,可以写出到文件,也可以写出到流
lineCaptcha.write("d:/line.png");
//输出code
Console.log(lineCaptcha.getCode());
//验证图形验证码的有效性,返回boolean值
lineCaptcha.verify("1234");

你可能感兴趣的:(java,java,hutool,java工具,后端)