Hutool简介
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
DateUtil
下面是Hutool库中DateUtil
类的常用方法整理在一起:
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil;public class DateUtilExample {public static void main(String[] args) {// 格式化日期时间Date date = new Date();String formatDateTime = DateUtil.formatDateTime(date);// 字符串转日期String dateStr = "2024-02-21";Date parseDate = DateUtil.parse(dateStr);// 计算日期差long betweenDay = DateUtil.between(new Date(), DateUtil.offsetDay(new Date(), 1), DateUnit.DAY);// 日期偏移Date offsetDate = DateUtil.offset(new Date(), DateField.DAY_OF_MONTH, 1);// 日期比较boolean isSameDay = DateUtil.isSameDay(new Date(), new Date());// 日期时间加减Date newDate = DateUtil.offsetDay(new Date(), 1);// 日期时间格式化String formattedDate = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");// 获取当前时间Date now = DateUtil.date();// 日期范围判断boolean isInThisWeek = DateUtil.isInThisWeek(new Date());}
}
上述代码展示了Hutool库中DateUtil
类的常用方法并整理在一起。您可以根据需要选择合适的方法进行使用。确保你的项目中引入了正确的Hutool依赖,并验证这些方法在你的项目环境中可用。
StrUtil
以下是Hutool库中StrUtil
类的常用方法整理在一起:
import cn.hutool.core.util.StrUtil;public class StrUtilExample {public static void main(String[] args) {// 判断字符串是否为空boolean isEmpty = StrUtil.isEmpty("hello");// 判断字符串是否为空白(包括空格、制表符、换行符等)boolean isBlank = StrUtil.isBlank(" ");// 判断字符串是否不为空boolean isNotEmpty = StrUtil.isNotEmpty("world");// 判断字符串是否不为空白boolean isNotBlank = StrUtil.isNotBlank("Hello, world!");// 去除字符串两端的空白字符String trimmedStr = StrUtil.trim(" Hutool ");// 字符串拼接String concatStr = StrUtil.join(",", "a", "b", "c");// 字符串格式化String formattedStr = StrUtil.format("Hello, {}!", "world");// 字符串分割List<String> splitList = StrUtil.split("a,b,c", ",");// 字符串替换String replacedStr = StrUtil.replace("Hello, world!", "world", "Hutool");// 字符串转换为大写String upperCaseStr = StrUtil.upperFirst("hutool");// 字符串转换为小写String lowerCaseStr = StrUtil.lowerFirst("HUTOOL");// 截取字符串String subStr = StrUtil.sub("Hutool is a useful tool", 6, 13);}
}
BeanUtil
以下是Hutool库中BeanUtil
类的常用方法整理在一起:
import cn.hutool.core.bean.BeanUtil;public class BeanUtilExample {public static void main(String[] args) {// 复制属性值到新对象MyBean sourceBean = new MyBean("John", 30);MyBean targetBean = new MyBean();BeanUtil.copyProperties(sourceBean, targetBean);// 将Map转换为Bean对象Map<String, Object> map = new HashMap<>();map.put("name", "Alice");map.put("age", 25);MyBean beanFromMap = BeanUtil.mapToBean(map, MyBean.class, false);// 将Bean对象转换为MapMap<String, Object> beanMap = BeanUtil.beanToMap(targetBean);// 判断Bean对象是否为空对象boolean isBeanEmpty = BeanUtil.isEmpty(targetBean);// 获取Bean对象的指定属性值Object nameValue = BeanUtil.getProperty(targetBean, "name");// 设置Bean对象的指定属性值BeanUtil.setProperty(targetBean, "age", 35);}static class MyBean {private String name;private int age;// Constructor, getters, and setters}
}
CollUtil
以下是Hutool库中CollUtil
类的常用方法整理在一起:
import cn.hutool.core.collection.CollUtil;public class CollUtilExample {public static void main(String[] args) {// 创建ArrayList集合List<String> list = CollUtil.newArrayList("apple", "banana", "cherry");// 判断集合是否为空boolean isEmpty = CollUtil.isEmpty(list);// 判断集合是否不为空boolean isNotEmpty = CollUtil.isNotEmpty(list);// 集合元素拼接成字符串String joinStr = CollUtil.join(list, ",");// 将集合转换为数组String[] array = CollUtil.toArray(list, String.class);// 判断集合中是否包含指定元素boolean contains = CollUtil.contains(list, "banana");// 获取集合的指定下标元素String element = CollUtil.get(list, 1);// 反转集合顺序List<String> reversedList = CollUtil.reverse(list);// 清空集合CollUtil.clear(list);}
}
FileUtil
在 Hutool 中,FileUtil
类提供了一系列用于文件操作的工具方法。以下是 FileUtil
的常见用法示例:
文件读写操作
import cn.hutool.core.io.FileUtil;public class FileUtilExample {public static void main(String[] args) {// 读取文件内容为字符串String content = FileUtil.readUtf8String("test.txt");// 将字符串写入文件FileUtil.writeUtf8String("Hello, World!", "output.txt");// 复制文件FileUtil.copy("source.txt", "destination.txt", true);// 移动文件FileUtil.move("source.txt", "destination.txt", true);// 删除文件FileUtil.del("fileToDelete.txt");// 创建目录FileUtil.mkdir("newDirectory");// 获取文件扩展名String extName = FileUtil.extName("example.doc");// 获取文件大小long fileSize = FileUtil.size("largeFile.pdf");}
}
遍历文件和目录
import cn.hutool.core.io.FileUtil;
import java.io.File;
import java.util.List;public class FileTraverseExample {public static void main(String[] args) {// 遍历指定目录下的所有文件,包括子目录List<File> fileList = FileUtil.loopFiles("directoryPath");// 遍历指定目录下的所有子目录List<File> dirList = FileUtil.loopFiles("directoryPath", file -> file.isDirectory());}
}
以上示例展示了如何使用 Hutool 中的 FileUtil
类进行文件操作,包括读取文件内容、写入文件、复制、移动、删除文件,创建目录,获取文件扩展名和大小,以及遍历文件和目录。确保你的项目中引入了正确的 Hutool 依赖,并验证这些方法在你的项目环境中可用。
IOUtil
在 Hutool 中,IOUtil
类提供了一些实用的方法来处理输入输出流。以下是 IOUtil
的一些常见用法示例:
输入流操作
import cn.hutool.core.io.IoUtil;public class IoUtilExample {public static void main(String[] args) {// 从输入流中读取字节数组byte[] bytes = IoUtil.readBytes(inputStream);// 从输入流中读取字符串String content = IoUtil.readUtf8(inputStream);// 将输入流内容复制到输出流long copySize = IoUtil.copy(inputStream, outputStream, bufferSize);// 关闭输入流IoUtil.close(inputStream);}
}
输出流操作
import cn.hutool.core.io.IoUtil;public class IoUtilExample {public static void main(String[] args) {// 从输入流中读取字节数组byte[] bytes = IoUtil.readBytes(inputStream);// 从输入流中读取字符串String content = IoUtil.readUtf8(inputStream);// 将输入流内容复制到输出流long copySize = IoUtil.copy(inputStream, outputStream, bufferSize);// 关闭输入流IoUtil.close(inputStream);}
}
文件流操作
import cn.hutool.core.io.IoUtil;public class IoUtilExample {public static void main(String[] args) {// 从文件中读取字节数组byte[] fileBytes = IoUtil.readBytes(file);// 从文件中读取字符串String fileContent = IoUtil.readUtf8(file);// 将字节数组写入文件IoUtil.write(fileBytes, file);// 将字符串写入文件IoUtil.writeUtf8("Hello, World!", file);}
}
以上示例展示了如何使用 Hutool 中的 IOUtil
类来处理输入输出流。确保你的项目中引入了正确的 Hutool 依赖,并验证这些方法在你的项目环境中可用。
ObjectUtil
在 Hutool 中,ObjectUtil
类提供了一些实用的方法来操作对象。以下是 ObjectUtil
的一些常见用法示例:
对象判空和相等性检查
import cn.hutool.core.util.ObjectUtil;public class ObjectUtilExample {public static void main(String[] args) {Object obj1 = null;Object obj2 = new Object();// 判断对象是否为空boolean isNull = ObjectUtil.isNull(obj1);// 判断对象是否非空boolean isNotNull = ObjectUtil.isNotNull(obj2);// 比较两个对象是否相等(支持处理null情况)boolean isEqual = ObjectUtil.equal(obj1, obj2);}
}
克隆对象
import cn.hutool.core.util.ObjectUtil;public class ObjectCloneExample {public static void main(String[] args) {SomeClass originalObj = new SomeClass();// 浅克隆对象SomeClass clonedObj = ObjectUtil.clone(originalObj);// 深克隆对象(需要对象实现 Serializable 接口)SomeClass deepClonedObj = ObjectUtil.deepClone(originalObj);}
}
Convert
在 Hutool 中,Convert
类提供了一系列用于类型转换的方法。以下是 Convert
类的一些常见用法示例:
类型转换
import cn.hutool.core.convert.Convert;public class ConvertExample {public static void main(String[] args) {// 将字符串转换为整数int intValue = Convert.toInt("123");// 将字符串数组转换为整数数组int[] intArray = Convert.toIntArray(new String[]{"1", "2", "3"});// 将对象转换为字符串String strValue = Convert.toStr(123);// 将对象转换为日期Date dateValue = Convert.toDate("2024-02-21");// 将对象转换为指定类型double doubleValue = Convert.convert(double.class, "3.14");// 将集合转换为数组List<String> list = CollUtil.newArrayList("apple", "banana", "cherry");String[] array = Convert.convert(String[].class, list);}
}
转换为指定类型
import cn.hutool.core.convert.Convert;public class ConvertToTypeExample {public static void main(String[] args) {// 将字符串转换为枚举类型Status status = Convert.toEnum(Status.class, "ACTIVE");// 将对象转换为指定实体类User user = Convert.convert(User.class, dataMap);}
}
以上示例展示了如何使用 Hutool 中的 Convert
类进行类型转换操作。确保你的项目中引入了正确的 Hutool 依赖,并验证这些方法在你的项目环境中可用。
NumberUtil
在 Hutool 中,NumberUtil
类提供了一些实用的方法来处理数字类型。以下是 NumberUtil
的一些常见用法示例:
数字格式化
import cn.hutool.core.util.NumberUtil;public class NumberUtilExample {public static void main(String[] args) {// 格式化保留小数位数double num = 123.456789;String formattedNumber = NumberUtil.decimalFormat("#.##", num);// 四舍五入保留指定小数位double roundedNumber = NumberUtil.round(num, 2);// 获取两数相加的和int sum = NumberUtil.add(10, 20);// 获取两数相减的差int difference = NumberUtil.sub(30, 10);// 获取两数相乘的积int product = NumberUtil.mul(5, 6);// 获取两数相除的商double quotient = NumberUtil.div(10, 3);}
}
其他数值操作
import cn.hutool.core.util.NumberUtil;public class NumberUtilOperationsExample {public static void main(String[] args) {// 判断一个数是否为整数boolean isInteger = NumberUtil.isInteger("123");// 判断一个数是否为质数boolean isPrime = NumberUtil.isPrimes(7);// 获取最大公约数long gcd = NumberUtil.gcd(24, 36);// 获取最小公倍数long lcm = NumberUtil.lcm(4, 6);}
}
ZipUtil
在 Hutool 中,ZipUtil
类提供了用于压缩和解压缩文件或目录的方法。以下是 ZipUtil
的一些常见用法示例:
压缩文件或目录
import cn.hutool.core.util.ZipUtil;public class ZipUtilExample {public static void main(String[] args) {// 压缩单个文件ZipUtil.zip("sourceFile.txt", "compressedFile.zip");// 压缩目录及其子目录ZipUtil.zip("sourceDirectory", "compressedDirectory.zip");}
}
解压缩文件
import cn.hutool.core.util.ZipUtil;public class UnzipUtilExample {public static void main(String[] args) {// 解压缩文件到指定目录ZipUtil.unzip("compressedFile.zip", "unzippedDirectory");}
}
压缩和解压缩操作示例
import cn.hutool.core.util.ZipUtil;
import java.io.File;public class ZipAndUnzipExample {public static void main(String[] args) {// 压缩目录ZipUtil.zip(new File("sourceDirectory"), new File("compressedDirectory.zip"));// 解压缩文件ZipUtil.unzip(new File("compressedDirectory.zip"), new File("unzippedDirectory"));}
}
以上示例展示了如何使用 Hutool 中的 ZipUtil
类来进行文件或目录的压缩和解压缩操作。确保你的项目中引入了正确的 Hutool 依赖,并验证这些方法在你的项目环墯中可用。
官网地址
简介 | Hutool