Comprehensive Java utility library providing collections, strings, beans, dates, I/O, and numerous other utility functions.
npx @tessl/cli install tessl/maven-cn-hutool--hutool-core@5.8.0Hutool Core is a comprehensive Java utility library providing extensive functionality for collections, strings, beans, dates, I/O operations, and numerous other common programming tasks. It offers over 90 utility classes with thousands of static methods designed to simplify Java development with null-safe operations, type conversions, and practical helper functions.
pom.xml:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.40</version>
</dependency>import cn.hutool.core.util.StrUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;import cn.hutool.core.util.StrUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
// String utilities
boolean isEmpty = StrUtil.isBlank(" "); // true
String formatted = StrUtil.format("Hello {}", "World"); // "Hello World"
// Collection utilities
List<String> list = CollUtil.newArrayList("a", "b", "c");
boolean hasItems = CollUtil.isNotEmpty(list); // true
// Date utilities
String dateStr = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
Date parsed = DateUtil.parse("2023-01-15", "yyyy-MM-dd");Hutool Core is organized into distinct functional packages:
Comprehensive string manipulation, formatting, conversion, and validation utilities.
public class StrUtil {
public static boolean isBlank(CharSequence str);
public static boolean isEmpty(CharSequence str);
public static String format(String template, Object... params);
public static String utf8Str(Object obj);
}Utilities for creating, manipulating, and transforming Java collections with null-safe operations.
public class CollUtil {
public static <T> boolean isEmpty(Collection<T> collection);
public static <T> boolean isNotEmpty(Collection<T> collection);
public static <T> List<T> newArrayList(T... values);
public static <T> Collection<T> union(Collection<T> coll1, Collection<T> coll2);
}Date parsing, formatting, manipulation, and calendar operations with support for both legacy Date API and Java 8+ time API.
public class DateUtil {
public static String format(Date date, String format);
public static Date parse(String dateStr, String format);
public static long between(Date beginDate, Date endDate, DateUnit unit);
}Universal type conversion system supporting conversion between all common Java types.
public class Convert {
public static <T> T convert(Class<T> type, Object value);
public static String toStr(Object value);
public static Integer toInt(Object value);
public static Boolean toBool(Object value);
}File operations, stream handling, resource management, and NIO utilities.
public class FileUtil {
public static String readUtf8String(File file);
public static void writeUtf8String(String content, File file);
public static boolean exist(String path);
public static File copy(File src, File dest, boolean isOverride);
}
public class IoUtil {
public static long copy(InputStream in, OutputStream out);
public static void close(Closeable closeable);
public static String read(InputStream in, Charset charset);
}Random number generation, string generation, and collection element selection utilities.
public class RandomUtil {
public static boolean randomBoolean();
public static int randomInt(int minInclude, int maxExclude);
public static String randomString(int length);
public static <T> T randomEle(List<T> list);
}XML parsing, manipulation, and serialization utilities.
public class XmlUtil {
public static Document readXML(String pathOrContent);
public static String toStr(Node doc, boolean isPretty);
public static Element getElementByXPath(Document doc, String expression);
public static String escape(String string);
}ZIP file compression, decompression, and archive manipulation utilities.
public class ZipUtil {
public static File zip(String srcPath, String zipPath);
public static File unzip(String zipFilePath, String outFileDir);
public static byte[] gzip(String content, String charset);
public static String unGzip(byte[] buf, String charset);
}URL creation, parsing, encoding, and manipulation utilities.
public class URLUtil {
public static URL url(String url);
public static String decode(String url);
public static String normalize(String url);
public static InputStream getStream(URL url);
}Object comparison, validation, cloning, and manipulation utilities.
public class ObjectUtil {
public static boolean equals(Object obj1, Object obj2);
public static boolean isEmpty(Object obj);
public static <T> T defaultIfNull(T object, T defaultValue);
public static <T> T clone(T obj);
}Other specialized utility classes available in Hutool Core:
// Date unit enumeration
public enum DateUnit {
MS, SECOND, MINUTE, HOUR, DAY, WEEK
}
// Charset utilities
public class CharsetUtil {
public static final Charset UTF_8 = StandardCharsets.UTF_8;
public static final Charset GBK = Charset.forName("GBK");
}
// String pool constants
public interface StrPool {
String EMPTY = "";
String NULL = "null";
String SPACE = " ";
String TAB = "\t";
String DOT = ".";
String SLASH = "/";
String BACKSLASH = "\\";
}