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