• Java之Hutool/Guava/Apache Commons工具包项目实践


    概述

    项目实践

    1. package com.bierce;
    2. import java.awt.Color;
    3. import java.awt.Font;
    4. import java.io.BufferedInputStream;
    5. import java.io.BufferedOutputStream;
    6. import java.io.File;
    7. import java.lang.reflect.Constructor;
    8. import java.util.Date;
    9. import cn.hutool.core.convert.Convert;
    10. import cn.hutool.core.date.BetweenFormater;
    11. import cn.hutool.core.date.DateUnit;
    12. import cn.hutool.core.date.DateUtil;
    13. import cn.hutool.core.date.Zodiac;
    14. import cn.hutool.core.img.ImgUtil;
    15. import cn.hutool.core.io.FileUtil;
    16. import cn.hutool.core.io.IoUtil;
    17. import cn.hutool.core.lang.Console;
    18. import cn.hutool.core.lang.Validator;
    19. import cn.hutool.core.util.IdcardUtil;
    20. import cn.hutool.core.util.ReflectUtil;
    21. import cn.hutool.core.util.ZipUtil;
    22. import cn.hutool.crypto.SecureUtil;
    23. public class HutoolsTest {
    24. public static void main(String[] args) {
    25. //一. Hutool 工具包实践 https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/hutool.md
    26. //1. 类型转换
    27. String numStr = "22";
    28. int num = Convert.toInt(numStr, 0); // 22
    29. //2. Md5加密
    30. String myPwd = "bishuai123";
    31. String md5MyPwd = SecureUtil.md5().digestHex(myPwd); // 9cf7b74f75eb22be5af45ccfed7093a5
    32. //3. 日期处理
    33. String dateStr = "2020-09-29 22:33:23";
    34. Date writeTextDate = DateUtil.parse(dateStr);
    35. Date todayDate = DateUtil.date();
    36. long betweenDay = DateUtil.between(writeTextDate, todayDate, DateUnit.MS);
    37. String formatBetween = DateUtil.formatBetween(betweenDay, BetweenFormater.Level.SECOND);
    38. System.out.println("formatBetween = " + formatBetween); //格式化时间差: 1359天19小时3分34秒
    39. //星座和属相
    40. String zodiac = Zodiac.getZodiac(DateUtil.parse("1995-03-18"));
    41. System.out.println("星座 = " + zodiac); // 双鱼座
    42. String chineseZodiac = Zodiac.getChineseZodiac(DateUtil.parse("1995-02-18"));
    43. System.out.println("属相 = " + chineseZodiac); // 猪
    44. //4. IO 流相关-网络操作和文件操作(文件目录的新建、删除、复制、移动、改名\判断文件或目录是否非空,是否为目录,是否为文件等)
    45. BufferedInputStream in = FileUtil.getInputStream("hutool/origin.txt");
    46. BufferedOutputStream out = FileUtil.getOutputStream("hutool/to.txt"); //默认输出项目路径:\target\test-classes
    47. long copySize = IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);
    48. System.out.println("copySize = " + copySize);
    49. //5. 字符串工具,和 Apache Commons Lang 包中的 StringUtils 类似
    50. //6. 反射工具
    51. // 构建对象
    52. HutoolsTest hutoolsTest = ReflectUtil.newInstance(HutoolsTest.class);
    53. System.out.println("hutoolTest = " + hutoolsTest);
    54. // 获取构造方法
    55. Constructor[] constructors = ReflectUtil.getConstructors(HutoolsTest.class);
    56. for (Constructor constructor : constructors) {
    57. System.out.println(constructor.getName());
    58. }
    59. //7. 压缩工具
    60. ZipUtil.zip("hutool", "hutool.zip");//默认输出项目路径:\target\test-classes
    61. File unzip = ZipUtil.unzip("hutool.zip", "hutoolzip");//默认输出项目路径:\target\test-classes
    62. //8. 身份证工具: 支持大陆 15 位、18 位身份证,港澳台 10 位身份证
    63. String ID_18 = "321083197812162119";
    64. boolean valid = IdcardUtil.isValidCard(ID_18);// 是否有效= true
    65. //9. 控制台打印
    66. Console.log("墨行子,一枚有趣的程序员");// 打印字符串 墨行子,一枚有趣的程序员
    67. Console.log("西安是{}朝古都","13");// 打印字符串模板 西安是13朝古都
    68. int [] ints = {1,2,3,4};
    69. Console.log(ints);// 打印数组 [1, 2, 3, 4]
    70. //10. 字段验证器(是不是邮箱/IP V4、V6/电话号码等等)
    71. boolean isEmail = Validator.isEmail("墨行子"); // isEmail = false
    72. boolean isMobile = Validator.isMobile("itwanger.com"); // isMobile = false
    73. boolean isIPV4 = Validator.isIpv4("192.168.56.1"); // isIPV4 = true
    74. //11. 图片工具( ImgUtil 可以对图片进行缩放、裁剪、转为黑白、加水印等操作)
    75. ImgUtil.pressText(//
    76. FileUtil.file("hutool/snow.jpg"),
    77. FileUtil.file("hutool/snow2.jpg"),
    78. "墨行子", Color.RED,
    79. new Font("黑体", Font.BOLD, 50),
    80. 0,
    81. 0,
    82. 0.8f
    83. ); // 输出文件路径: \target\test-classes\hutool
    84. //12. 加密解密(对称加密AES、DES,非对称RSA,摘要加密MD5、SHA-256等)
    85. String encry = SecureUtil.md5().digestHex("墨行子"); //Md5加密: 8c4c11f5b8391b2eebbad4a9a0436e4e
    86. //二. 其他常用工具包
    87. //1. Apache commons工具包; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/StringUtils.md
    88. //2. guava 工具包; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/guava.md
    89. //3. 其他常用Java工具类:IpUtil、MDC、ClassUtils、BeanUtils、ReflectionUtils; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/utils.md
    90. }
    91. }
  • 相关阅读:
    django 支付宝支付
    vue指令
    Android环境变量&macOS环境变量配置
    vue2中,使用sortablejs组件和vuedraggable实现拖拽排序功能
    【Hive SQL 每日一题】环比增长率、环比增长率、复合增长率
    Java中单链表的创建
    2022.11.3 英语背诵
    Move 双子星之一 Sui 生态有哪些项目值得关注
    为什么国外10年开发者退出 Android 开发以及他现在打算做什么
    Mybatis Plus配置多个数据源
  • 原文地址:https://blog.csdn.net/qq_34020761/article/details/139854759