Hutool官方文档
Hutool使用总结
HutoolAPI文档

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

导入maven全量包

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.2</version>
</dependency>

一、数字工具NumberUtil

示例:

public static void main(String[] args) {
    // 加
    double add = NumberUtil.add(25, 6);
    // 减
    double sub = NumberUtil.sub(25, 6);
    // 乘
    double mul = NumberUtil.mul(25, 6);
    // 除
    double div = NumberUtil.div(25, 6);
    System.out.println(add);
    System.out.println(sub);
    System.out.println(mul);
    System.out.println(div);
    // 保留两位小数
    System.out.println(NumberUtil.round(div, 2));
    System.out.println(NumberUtil.roundStr(div, 2));

    /**
     *
     * 0 -> 取一位整数
     * 0.00 -> 取一位整数和两位小数
     * 00.000 -> 取两位整数和三位小数
     * # -> 取所有整数部分
     * #.##% -> 以百分比方式计数,并取两位小数
     * #.#####E0 -> 显示为科学计数法,并取五位小数
     * ,### -> 每三位以逗号进行分隔,例如:299,792,458
     * 光速大小为每秒,###米 -> 将格式嵌入文本
     **/
    String format1 = NumberUtil.decimalFormat("0.00", 8.5967D);// 8.60
    System.out.println(format1);
    String format2 = NumberUtil.decimalFormat("#.##%", 0.279D);// 27.9%
    System.out.println(format2);
    String format3 = NumberUtil.decimalFormat(",###", 299792458L);// 299,792,458
    System.out.println(format3);
    String format4 = NumberUtil.decimalFormat("光速大小为每秒,###米", 299792458L);// 光速大小为每秒299,792,458米
    System.out.println(format4);
}

二、http工具Hutool-http

常用的API方法如下:

  1. HttpUtil:get请求、post请求、文件上传下载(设置不了请求头、代理等信息)
// GET请求例子----------------------------------------------------------------

// 最简单的HTTP请求,可以自动通过header等信息判断编码,不区分HTTP和HTTPS
String result1= HttpUtil.get("https://www.baidu.com");
// 当无法识别页面编码的时候,可以自定义请求页面的编码
String result2= HttpUtil.get("https://www.baidu.com", CharsetUtil.CHARSET_UTF_8);
//可以单独传入http参数,这样参数会自动做URL编码,拼接在URL中
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");
String result3= HttpUtil.get("https://www.baidu.com", paramMap);

// POST请求例子----------------------------------------------------------------
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");
String result= HttpUtil.post("https://www.baidu.com", paramMap);

// 文件上传--------------------------------------------------------------------
//获取桌面地址
FileSystemView fsv = FileSystemView.getFileSystemView();
File file = fsv.getHomeDirectory();
String deskPath = file.getPath();
HashMap<String, Object> paramMap = new HashMap<>();
//文件上传只需将参数中的键指定(默认file),值设为文件对象即可,对于使用者来说,文件上传与普通表单提交并无区别
paramMap.put("file", FileUtil.file(deskPath + "\\face.jpg"));
String result= HttpUtil.post("https://www.baidu.com", paramMap);

// 文件下载--------------------------------------------------------------------
//获取桌面地址
FileSystemView fsv = FileSystemView.getFileSystemView();
File file = fsv.getHomeDirectory();
String deskPath = file.getPath();
// 下载文件,提供生命周期钩子
HttpUtil.downloadFile("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png", FileUtil.file(deskPath), new StreamProgress() {
    @Override
    public void start() {
        System.out.println("开始下载");
    }
    @Override
    public void progress(long progressSize) {
        System.out.println("下载中,已下载" + FileUtil.readableFileSize(progressSize));
    }
    @Override
    public void finish() {
        System.out.println("下载完成");
    }
});

2.HttpRequest:get请求、post请求(链式构建请求)

// GET请求例子----------------------------------------------------------------
// 设置url参数,会自动拼到url后面
Map<String,Object> paramMap = new HashMap<>(3);
paramMap.put("latnId","551");
paramMap.put("serviceNbr","15305514582");
// 设置请求头参数
Map<String, List<String>> headMap = new HashMap<>(3);
List<String> list = new ArrayList<>(1);
list.add("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjJmYzk0ZmViLTc5ZDUtNDhmYy1iNGNiLWQ5M2IyM2EyNzk2MiJ9.NoLKfICpjZotRw4sc-eM4xWzMUZ72i9w_qyVkPvdGqEsBfK2HUwOxGGow77r6otBcTyUjvTxzZBFRk-OT5qbiQ");
headMap.put(Header.AUTHORIZATION.getValue(),list);
HttpResponse execute = HttpRequest.get("http://localhost:9095/contact/label/getGridByNbr").form(paramMap).header(headMap).execute();
System.out.println(execute.body());

// POST请求例子----------------------------------------------------------------
// 设置请求体参数
JSONObject paramMap = new JSONObject(2);
paramMap.put("userName","zhangsan");
paramMap.put("modelFlag","1");
// 设置请求头参数
Map<String, List<String>> headMap = new HashMap<>(3);
List<String> list = new ArrayList<>(1);
list.add("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjJmYzk0ZmViLTc5ZDUtNDhmYy1iNGNiLWQ5M2IyM2EyNzk2MiJ9.NoLKfICpjZotRw4sc-eM4xWzMUZ72i9w_qyVkPvdGqEsBfK2HUwOxGGow77r6otBcTyUjvTxzZBFRk-OT5qbiQ");
headMap.put(Header.AUTHORIZATION.getValue(),list);
String executeBody = HttpRequest.post("http://localhost:9095/contact/label/handleContactModel").body(paramMap.toJSONString()).header(headMap).execute().body();
System.out.println(executeBody);

三、日期时间工具DateUtil


版权声明:本文为weixin_42402326原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42402326/article/details/128471701