当前位置: 首页 > news >正文

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路径。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 服务架构的设计原则
  • DS1338/PT7C4338串行实时时钟-国产兼容RS4C1338
  • 如何免费用 Qwen2 辅助你翻译与数据分析?
  • Excel根据身份证号提取信息
  • C语言详解(预编译)
  • App推广效果分析,Xinstall助力精准优化
  • 【wiki知识库】06.文档管理页面的添加--前端Vue部分
  • 记录pytest中场景执行的token异常处理问题
  • 加油卡APP开发,汽车加油便捷新方式
  • C++:调整数组顺序使奇数位于偶数前面【面试】
  • 创新共享经济:探索Web3对新商业模式的启迪
  • 【Python入门与进阶】Python函数的定义与使用
  • 随手记:商品信息过多,展开收起功能
  • Java-集合类-Arrays.asList()使用需要注意的大坑
  • 综合数据分析及可视化实战
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Docker: 容器互访的三种方式
  • Java读取Properties文件的六种方法
  • js操作时间(持续更新)
  • Objective-C 中关联引用的概念
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Vultr 教程目录
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用 @font-face
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 微信开放平台全网发布【失败】的几点排查方法
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 回归生活:清理微信公众号
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #QT(串口助手-界面)
  • (19)夹钳(用于送货)
  • (C++17) optional的使用
  • (ZT)出版业改革:该死的死,该生的生
  • (第27天)Oracle 数据泵转换分区表
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (一)appium-desktop定位元素原理
  • (转)fock函数详解
  • .naturalWidth 和naturalHeight属性,
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core 连接数据库,通过数据库生成Modell
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 按比例显示图片的缩略图
  • .Net 应用中使用dot trace进行性能诊断
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • @test注解_Spring 自定义注解你了解过吗?
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法
  • [C++] vector对比list deque的引出