Hutool有哪些常用方法

  • Hutool是一个Java工具类库,它提供了很多方便的方法来简化Java开发。以下是一些Hutool的常用方法及其示例: 

一、日期时间处理

  •  DateUtil.format(Date date, String pattern): 格式化日期。
// 代码如下
Date date = new Date();
String format = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");

二、文件操作


  • FileUtil.writeBytes(String filePath, byte[] data): 将字节数据写入文件。
// 代码如下
String filePath = "example.txt";
byte[] data = "Hello, Hutool!".getBytes();
FileUtil.writeBytes(filePath, data);

三、字符串处理


  • StrUtil.startWith(CharSequence str, CharSequence prefix): 检查字符串是否以指定前缀开始。
// 代码如下
String str = "Hello World";
boolean startsWith = StrUtil.startWith(str, "Hello");

 四、JSON处理


  • JsonUtil.getJson().toJson(Object object): 将Java对象转换为JSON字符串。
// 代码如下
Map<String, Object> map = new HashMap<>();
map.put("name", "Hutool");
String jsonString = JsonUtil.getJson().toJson(map);

 五、加密解密


  • SecureUtil.md5(byte[] data): 对字节数据进行MD5加密。
// 代码如下
String data = "Hutool";
byte[] bytes = data.getBytes();
String md5 = SecureUtil.md5(bytes);

 六、网络请求


  • HttpRequest.get(String url): 发送HTTP GET请求。

// 代码如下
String url = "http://example.com/api/data";
HttpRequest.get(url).execute().body();

 七、图片处理


  • ImgUtil.read(String filePath): 读取图片文件。
// 代码如下
String filePath = "image.png";
Image image = ImgUtil.read(filePath);

八、验证码生成

  • CaptchaUtil.createMathCaptcha(int width, int height): 生成数学运算验证码。
Captcha captcha = CaptchaUtil.createMathCaptcha(200, 100);

九、Bean操作

  • BeanUtil.copyProperties(Object source, Object target): 将一个对象的属性复制到另一个对象。
User source = new User("Hutool", 30);
UserDTO target = new UserDTO();
BeanUtil.copyProperties(source, target);

十、系统信息 

  • SystemUtil.getOsInfo(): 获取操作系统信息。
String osInfo = SystemUtil.getOsInfo();

十一、Excel处理

  •  ExcelUtil.getReader(String filePath): 读取Excel文件。
String filePath = "example.xlsx";
ExcelReader reader = ExcelUtil.getReader(filePath);

十二、二维码生成

  • QrCodeUtil.createText(String content, int width, int height): 生成文本内容的二维码。
String content = "http://hutool.cn";
QrCodeUtil.createText(content, 300, 300, "qrcode.png");

十三、邮件发送

  • MailUtil.send(String to, String subject, String content, String... cc): 发送邮件
String to = "example@example.com";
String subject = "Test Mail";
String content = "Hello, Hutool!";
MailUtil.send(to, subject, content);

十四、验证码图片生成

  •  CaptchaUtil.createCharCaptcha(int width, int height): 生成字符验证码图片。
Captcha captcha = CaptchaUtil.createCharCaptcha(200, 100);

十五、反射操作

  • ReflectUtil.invokeMethod(Object instance, String methodName, Object... params): 调用对象的指定方法。
Object instance = new MyClass();
Object result = ReflectUtil.invokeMethod(instance, "myMethod", "arg1", 123);

十六、线程池管理

  • ThreadPoolUtil.getExecutor(): 获取默认的线程池。
ExecutorService executor = ThreadPoolUtil.getExecutor();
executor.submit(() -> {// Task code here
});

十七、Bean拷贝

  • BeanUtil.copyProperties(Object source, Class<?> clazz): 将源对象的属性拷贝到指定类型的新对象。
User source = new User("Hutool", 30);
UserDTO target = BeanUtil.copyProperties(source, UserDTO.class);

十八、正则表达式

  • RegexUtil.isMatch(CharSequence str, String regex): 检查字符串是否与正则表达式匹配。
String str = "Hello123";
boolean isMatch = RegexUtil.isMatch(str, "^[a-zA-Z]+[0-9]+$");

十九、Bean验证

  • ValidUtil.isEmail(CharSequence email): 验证邮箱地址是否有效。
String email = "example@example.com";
boolean isValid = ValidUtil.isEmail(email);

二十、网络工具

  • NetUtil.getHostIp(): 获取本机的IP地址。
String hostIp = NetUtil.getHostIp();

二十一、URL处理

  • UrlUtil.decode(String str, String charset): 对URL进行解码。
String encodedUrl = "http%3A%2F%2Fexample.com";
String decodedUrl = UrlUtil.decode(encodedUrl, StandardCharsets.UTF_8);

二十二、集合操作

  • CollUtil.newArrayList(): 创建一个新的ArrayList。
List<String> list = CollUtil.newArrayList("Hutool", "Java", "Tools");

二十三、随机数生成

  • RandomUtil.randomInt(int min, int max): 生成指定范围内的随机整数。
int randomInt = RandomUtil.randomInt(1, 100);

二十四、日志工具

  • LogUtil.get(): 获取日志对象。
Logger logger = LogUtil.get();
logger.info("Hello, Hutool!");

二十五、配置文件处理

  • Setting.getSetting(String filePath): 加载配置文件。
String filePath = "config.properties";
Setting setting = Setting.getSetting(filePath);
String value = setting.getByPath("key");

二十六、压缩解压

  • ZipUtil.zip(String path, String destPath): 将文件夹或文件压缩为ZIP格式。
String path = "/path/to/directory";
String destPath = "/path/to/archive.zip";
ZipUtil.zip(path, destPath);

二十七、HTTP客户端

  • HttpRequest.post(...).body(...).execute(): 发送HTTP POST请求并获取响应。
String url = "http://example.com/api/data";
HttpRequest request = HttpRequest.post(url).header(Header.USER_AGENT, "Hutool http client").body("key1=value1&key2=value2");
HttpResponse response = request.execute();
String body = response.body();

二十八、FTP客户端

  • Ftp.getFtp(String host, int port, String username, String password): 创建FTP客户端连接。
String host = "ftp.example.com";
int port = 21;
String username = "user";
String password = "password";
Ftp ftp = Ftp.getFtp(host, port, username, password);
ftp.connect();
ftp.upload("local/path/file.txt", "remote/path/file.txt");
ftp.close();

二十九、模板引擎

  • TemplateUtil.createTemplate(String resourcePath): 创建模板引擎实例。
String resourcePath = "/templates/template.ftl";
Template template = TemplateUtil.createTemplate(resourcePath);
Map<String, Object> model = new HashMap<>();
model.put("name", "Hutool");
String result = template.render(model);

三十、图像裁剪

  • ImgUtil.crop(BufferedImage src, int x, int y, int width, int height): 裁剪图像。
String imgPath = "/path/to/image.png";
BufferedImage src = ImgUtil.read(imgPath);
BufferedImage croppedImg = ImgUtil.crop(src, 100, 100, 200, 200);
ImgUtil.write(croppedImg, "/path/to/cropped_image.png");

三十一、图像水印

  • ImgUtil.pressText(BufferedImage src, String pressText, Font font, Color color): 在图像上添加文字水印。
String imgPath = "/path/to/image.png";
BufferedImage src = ImgUtil.read(imgPath);
Font font = new Font("宋体", Font.BOLD, 60);
Color color = Color.RED;
ImgUtil.pressText(src, "Hutool", font, color, 10, 10);
ImgUtil.write(src, "/path/to/watermarked_image.png");

三十二、图像缩放

  • ImgUtil.zoom(BufferedImage src, double scaleWidth, double scaleHeight): 缩放图像。
String imgPath = "/path/to/image.png";
BufferedImage src = ImgUtil.read(imgPath);
BufferedImage zoomedImg = ImgUtil.zoom(src, 0.5, 0.5);
ImgUtil.write(zoomedImg, "/path/to/zoomed_image.png");

三十三、图像旋转

  • ImgUtil.rotate(BufferedImage src, float degree): 旋转图像。
String imgPath = "/path/to/image.png";
BufferedImage src = ImgUtil.read(imgPath);
BufferedImage rotatedImg = ImgUtil.rotate(src, 90);
ImgUtil.write(rotatedImg, "/path/to/rotated_image.png");

三十四、文件类型检测

  • FileTypeUtil.guessFileType(String filePath): 检测文件类型。
String filePath = "/path/to/file";
FileType fileType = FileTypeUtil.guessFileType(filePath);

三十五、UUID生成

  • IdUtil.randomUUID(): 生成一个随机的UUID。
String uuid = IdUtil.randomUUID();

三十六、分页

  • Page.of(int pageIndex, int pageSize, long total): 创建分页对象。
int pageIndex = 1;
int pageSize = 10;
long total = 100;
Page page = Page.of(pageIndex, pageSize, total);

三十七、服务端配置

  • ServerUtil.getServerPort(): 获取当前服务的端口号。
int port = ServerUtil.getServerPort();

三十八、服务端信息

  • ServerUtil.servletPath(): 获取Servlet路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理 期末复习笔记整理(上)(个人复习笔记/侵删/有不足之处欢迎斧正)

零、计算机的发展 冯.诺依曼计算机的特点: 1.计算机由五大部件组成 2.指令和数据以同等地位存于存储器&#xff0c;可按地址寻访 3.指令和数据用二进制表示 4.指令由操作码和地址码组成 5.存储程序&#xff08;首次提出存储结构&#xff09; 6.以运算器为中心&#xff08;现代…

水泥行业超低排放简介

在当今社会&#xff0c;随着环保意识的不断提高&#xff0c;水泥行业作为重要的工业领域&#xff0c;其超低排放的实施范围及成效日益受到人们的关注。朗观视觉小编将从多个角度探讨水泥行业超低排放的实施范围&#xff0c;分析其背后的意义与影响&#xff0c;展望未来的发展趋…

如何在国产深度发行版Linux上部署ONLYOFFICE协作空间社区版?

如何在国产深度发行版Linux上部署ONLYOFFICE协作空间社区版&#xff1f; 书接上文&#xff1a; ONLYOFFICE 协作空间服务器如何一键安装自托管私有化部署 讲的是如何把ONLYOFFICE协作空间服务器部署到自托管云服务器VPS上面&#xff0c;这里继续&#xff0c;在自己Windows电…

c++ 智能指针使用注意事项及解决方案

c11智能指针 shared_ptr介绍注意事项示例解决方案 weak_ptr特点示例 unique_ptr特点示例 shared_ptr 介绍 shared_ptr 是一种智能指针&#xff0c;用于自动管理动态分配的对象的生命周期。它通过引用计数机制来确保当最后一个 shared_ptr 指向一个对象时&#xff0c;该对象会…

【C++ | 移动构造函数】一文了解C++11的 移动构造函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a;2024-06-12 2…

[深度学习]使用python转换pt并部署yolov10的tensorrt模型封装成类几句完成目标检测加速任务

【简单介绍】 使用Python将YOLOv10模型从PyTorch格式&#xff08;.pt&#xff09;转换为TensorRT格式&#xff0c;并通过封装成类来实现目标检测加速任务&#xff0c;是一个高效且实用的流程。以下是该过程的简要介绍&#xff1a; 模型转换&#xff1a; 利用官方提供导出命令…

浅谈网络通信(2)

文章目录 一、TCP1.1、TCP提供的api —— ServerSocket 、Socket1.2、使用TCP协议编写回显服务器1.3、长/短连接 二、应用层协议、传输层协议详解2.1、应用层(后端开发必知必会)2.1.1、自定义应用层协议2.1.2、通用的协议格式2.1.2.1、XML2.1.2.2、json2.1.2.3、protobuffer 2.…

Protected and unprotected Meilisearch projects(/health)

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

02通讯录管理系统——创建项目

创建项目步骤如下&#xff1a; 1.创建新项目 2.添加文件 2.1创建项目 打开vs2019后&#xff0c;点击创建新项目&#xff0c;创建新的C项目 填写项目名称&#xff0c;选择路径 2.2添加文件 添加成功后&#xff0c;效果如图

Jira的原理及应用详解(六)

本系列文章简介&#xff1a; 在当今快速发展的软件开发和项目管理领域&#xff0c;有效的团队协作和精确的项目进度追踪是确保项目成功的关键。Jira作为一款广受欢迎的项目和问题追踪工具&#xff0c;以其强大的功能、灵活的定制性以及卓越的用户体验&#xff0c;赢得了全球众多…

【QT5】<知识点> QT串口编程

目录 前言 一、串口编程步骤 0. 添加串口模块 1. 自动搜索已连接的串口 2. 创建串口对象 3. 初始化串口 4. 打开串口 5. 关闭串口 6. 发送数据 7. 接收数据 二、简易串口助手 1. 实现效果 2. 程序源码 3. 实现效果二 前言 本篇记录QT串口编程相关内容&#xff0…

iText7画发票PDF——小tips

itext7教程&#xff1a; 1、https://blog.csdn.net/allway2/article/details/124295097 2、https://max.book118.com/html/2017/0720/123235195.shtm 3、https://www.cnblogs.com/fonks/p/15090635.html 4、https://www.cnblogs.com/sky-chen/p/13026203.html 5、官方&#xff…

React基础教程(06):Ref的应用

7、Ref的应用 7.1 给标签设置ref"username" 通过这个获取this.refs.username&#xff0c;ref可以获取到应用的真实dom <input style{{width:300}}ref{"text"}/> {/*非常推荐*/} <Button style{{backgroundColor:#2ba471, border:"none&qu…

探索 HNSW:分层导航小世界算法的深度解析

近年来&#xff0c;随着大规模数据和高维数据的广泛应用&#xff0c;高效的近似最近邻&#xff08;Approximate Nearest Neighbor, ANN&#xff09;搜索变得越来越重要。HNSW&#xff08;Hierarchical Navigable Small World&#xff09;算法因其出色的性能和高效的查询速度&am…

JAVAEE认证题库

1、&#xff08;2分&#xff09;下列哪个命令用于在Tomcat服务器上启动一个特定的Web应用程序&#xff1f; A、catalina.bat start B、catalina.bat deploy C、catalina.bat stop D、catalina.bat run 你的答案&#xff1a;D正确答案&#xff1a;A 2、&#xff08;2分&am…

毕业了!给学计算机朋友的 10 条血泪建议

大家好&#xff0c;我是程序员鱼皮。最近高考结束了&#xff0c;也有很多同学毕业了&#xff0c;首先祝福这些朋友在人生的新阶段一帆风顺。 刚参加完高考的朋友&#xff0c;面临的最大问题就是选专业&#xff0c;这段时间也有一些家长向我咨询&#xff1a;还能不能选计算机啦…

人脸匹配——OpenCV

人脸匹配 导入所需的库加载dlib的人脸识别模型和面部检测器读取图片并转换为灰度图比较两张人脸选择图片并显示结果比较图片创建GUI界面运行GUI主循环运行显示全部代码 导入所需的库 cv2&#xff1a;OpenCV库&#xff0c;用于图像处理。 dlib&#xff1a;一个机器学习库&#x…

爬山算法(Hill Climbing Algorithm)详细介绍

爬山算法&#xff08;Hill Climbing Algorithm&#xff09;详细介绍 1. 概述 爬山算法&#xff08;Hill Climbing Algorithm&#xff09;是一种基于启发式的搜索算法&#xff0c;广泛应用于人工智能、运筹学和优化问题。该算法以当前状态为起点&#xff0c;不断选择邻域中能够…

基于深度学习视觉算法的多模型文件融合检测系统设计与实现及优化(工人姿态检测+安全帽佩戴检测系统)

1&#xff0c;融合pose.pt(姿态检测)(安全帽佩戴检测)效果图 实时检测优化后FPS可达20 2,原理介绍 YOLOv5是目前应用广泛的目标检测算法之一&#xff0c;其主要结构分为两个部分&#xff1a;骨干网络和检测头。 输入&#xff08;Input&#xff09;: YOLOv5的输入是一张RGB图像…

定档6.20,创邻科技图数据库先锋版发布会来了!

6月20日 14:00 &#xff0c;创邻科技将重磅召开 2024 Galaxybase银河图数据库先锋版发布会&#xff0c;戳此预约&#xff01; 书于竹帛&#xff0c;镂于金石&#xff0c;琢于盘盂。历史长河中&#xff0c;数据通过不同形态承载着人类文明&#xff0c;人们在数千年中始终保持着…