在项目中我们看到了很多同事喜欢进行相关的封装,我并不是反对,但是有些方法其实第三方jar包已经为我们提供了相同
的功能,所以我们应该要熟练的运行第三方jar提供的相关类来完成相关功能,从而提高项目的开发效率。在Apache中为我们提供了一系列的常用工具类,StringUtils,BeanUtils,CollectionUtils等等,下面我们我介绍一些常用类的用法。其实这些方法大家应该都已经非常熟悉了,这里只是简单的记录下,免得以后要用的时候还要去网上查阅资料。
A.common-lang
StringUtils
public class StringUtilsExample {
// 判断字符为空
public static boolean isEmpty(String str) {
return StringUtils.isEmpty(str);
}
// 判断字符不为空
public static boolean isNotEmpty(String str) {
return StringUtils.isNotEmpty(str);
}
// 判断字符为空,包括空白字符
public static boolean isBlank(String str) {
return StringUtils.isBlank(str);
}
// 判断字符不为空,包括空白字符
public static boolean isNotBlank(String str) {
return StringUtils.isNotBlank(str);
}
// 去除字符串前后空白
public static String trim(String str) {
return StringUtils.trim(str);
}
// 去除字符前后空白,如果字符串为null,则输出null
public static String trimNotNull(String str) {
return StringUtils.trimToNull(str);
}
// 去除字符前后空白,如果字符串为null,则输出""
public static String trimNotEmpty(String str) {
return StringUtils.trimToEmpty(str);
}
// 去除字符前后空格
public static String strip(String str) {
return StringUtils.strip(str);
}
// 去除字符前后空格,如果字符串为null输出null
public static String stripToNull(String str) {
return StringUtils.stripToNull(str);
}
// 分割字符串
public static String[] spiltstr(String str, String symple) {
return StringUtils.split(str, symple);
}
}
DateFormatUtils
jdk提供的时间格式化类simpleDateFormat是一个线程不安全,而DateFormatUtils 是线程安全类。
public class DateFormatUtilsExample {
// 转换时间格式为yyyy-mm-dd
public static String getISODateFormat(Date date) {
return DateFormatUtils.ISO_DATE_FORMAT.format(date);
}
// 转换时间格式为yyyy-MM-ddZZ 带时区
public static String getISODateTimeAndTimeZoneFormat(Date date) {
return DateFormatUtils.ISO_DATE_TIME_ZONE_FORMAT.format(date);
}
// 转换时间格式为 yyyy-MM-dd'T'HH:mm:ss
public static String getISODateTimeFormat(Date date) {
return DateFormatUtils.ISO_DATETIME_FORMAT.format(date);
}
// 转换时间格式为 yyyy-MM-dd'T'HH:mm:ss
public static String getISODateTimeZone(Date date) {
return DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(date);
}
// 时间格式为 'T'HH:mm:ss
public static String getIOSTimeFormat(Date date) {
return DateFormatUtils.ISO_TIME_FORMAT.format(date);
}
// 时间格式为 HH:mm:ss
public static String getIOSTimeNotTFormat(Date date) {
return DateFormatUtils.ISO_TIME_NO_T_FORMAT.format(date);
}
// 时间格式为 HH:mm:ssZZ
public static String getIOSTimeAndTimeZone(Date date) {
return DateFormatUtils.ISO_TIME_TIME_ZONE_FORMAT.format(date);
}
// 'T'HH:mm:ssZZ
public static String getIOSTimeNotTimeZoneFormat(Date date) {
return DateFormatUtils.ISO_TIME_NO_T_TIME_ZONE_FORMAT.format(date);
}
// //自定义时间格式
public static String getTimeFormat(Calendar calendar, String pattern) {
return DateFormatUtils.format(calendar, pattern);
}
// 自定义时间格式
public static String getTimeFormat(Date date, String pattern) {
return DateFormatUtils.format(date, pattern);
}
// 自定义时间格式
public static String getTimeFormat(Long time, String pattern) {
return DateFormatUtils.format(time, pattern);
}
// 将date类型转换成字符串
public static Date parse(String str,String[] parsePatterns) throws ParseException {
return DateUtils.parseDate(str, parsePatterns);
}
ArrayUtils
public class ArrayUtilsExample {
// 判断两个集合是否相等
public static boolean isEquals(Object array1, Object array2) {
return ArrayUtils.isEquals(array1, array2);
}
// 判断数组为空
public static boolean isEmpty(Object[] array) {
return ArrayUtils.isEmpty(array);
}
// 将二维数组转换成map集合
@SuppressWarnings("rawtypes")
public static Map toMap(Object[] array) {
return ArrayUtils.toMap(array);
}
// 数组中是否包含该对象
public static boolean contains(Object[] array, Object objectToFind) {
return ArrayUtils.contains(array, objectToFind);
}
// 数组中添加元素
public static Object[] add(Object[] array, Object element) {
return ArrayUtils.add(array, element);
}
//将集合array2中的元素全部添加到集合arrays1中
public static Object[] addAll(Object[] array1, Object[] array2) {
return ArrayUtils.addAll(array1, array2);
}
//集合中移除元素,根据索引
public static Object[] remove(Object[] array, int index) {
return ArrayUtils.remove(array, index);
}
//集合中移除元素,根据对象名称
public static Object[] removeElement(Object[] array, Object element) {
return ArrayUtils.removeElement(array, element);
}
//将数组集合进行反转
public static void reverse(Object[] array) {
ArrayUtils.reverse(array);
}
@SuppressWarnings("unchecked")
}
B.common-beautils
BeanUtils
// 将对象source的属性值拷贝到对象target对象中
public static void copyProperties(Object target, Object source)
throws IllegalAccessException, InvocationTargetException {
BeanUtils.copyProperties(target, source);
}
// 将对象转换成map集合
@SuppressWarnings("rawtypes")
public static Map describe(Object bean) throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
return BeanUtils.describe(bean);
}
// 设置对象的字段的属性值
public static void setPorperties(Object bean, String fieldName,
String fieldValue) throws IllegalAccessException,
InvocationTargetException {
BeanUtils.setProperty(bean, fieldName, fieldValue);
}
// 获取属性的值
public static String getProperties(Object bean, String filedName)
throws IllegalAccessException, InvocationTargetException,
NoSuchMethodException {
return BeanUtils.getProperty(bean, filedName);
}
// 将属性值为value拷贝到对象bean字段为name中
public static void copyProperty(Object bean, String name, String value)
throws IllegalAccessException, InvocationTargetException {
BeanUtils.copyProperty(bean, name, value);
}
// 将map集合转换成对象
@SuppressWarnings("rawtypes")
public static void populate(Object bean, Map map)
throws IllegalAccessException, InvocationTargetException {
BeanUtils.populate(bean, map);
}
ConstructorUtils
//通过构造函数获取对象
public static Object invokeConstructor(Class<?> clazz, Object[] args)
throws NoSuchMethodException, IllegalAccessException,
InvocationTargetException, InstantiationException {
return ConstructorUtils.invokeConstructor(clazz, args);
}
//通过构造函数获取对象 ,不过该方法对参数的要求比较的严格,所传入的class类型都为基本数据类型
public static Object invokeExactConstructor(Class<?> clazz, Object[] args,
Class<?>[] argTypes) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException,
InstantiationException {
return ConstructorUtils.invokeExactConstructor(clazz, args, argTypes);
}
MethodUtils
// 执行对象中的某个方法,如果该方法没有返回值,则返回为null
public static Object invokeMethod(Object object, String methodName,
Object[] arg) throws NoSuchMethodException, IllegalAccessException,
InvocationTargetException {
return MethodUtils.invokeMethod(object, methodName, arg);
}
public static Object invokeExamMethod(Object object, String methodName,
Object[] arg, Class<?>[] clazz) throws NoSuchMethodException,
IllegalAccessException, InvocationTargetException {
return MethodUtils.invokeExactMethod(object, methodName, arg, clazz);
}
common-collection
CollectionUtils
// 集合并集
public static Collection<?> union(Collection<?> a, Collection<?> b) {
return CollectionUtils.union(a, b);
}
// 集合交集
public static Collection<?> intersection(Collection<?> a, Collection<?> b) {
return CollectionUtils.intersection(a, b);
}
// 交集的补集
public static Collection<?> disjunction(Collection<?> a, Collection<?> b) {
return CollectionUtils.disjunction(a, b);
}
// 集合相减
public static Collection<?> subtract(Collection<?> a, Collection<?> b) {
return CollectionUtils.subtract(a, b);
}
C. common-io
FileUtils
//读取文件,将其转换成字节数组
public static byte[] readFileToByteArray(File file) throws IOException {
return FileUtils.readFileToByteArray(file);
}
//读取文件,将其转换成字符串
public static String readFileToString(File file) throws IOException {
return FileUtils.readFileToString(file);
}
//该方法是用data内容替换了file文件中原来的内容
public static void writeStringToFile(File file, String data)
throws IOException {
FileUtils.writeStringToFile(file, data);
}
//将文件srcFile拷贝到desFile中
public static void copyFile(File srcFile, File desFile) throws IOException {
FileUtils.copyFile(srcFile, desFile);
}
//将文件拷贝到目录下
public static void copyFileToDirectory(File srcDir, File destDir)
throws IOException {
FileUtils.copyDirectory(srcDir, destDir);
}
//拷贝URL类型
public static void copyURLToFile(URL source, File destination)
throws IOException {
FileUtils.copyURLToFile(source, destination);
}
//删除该目录下的所有文件
public static void delDirectory(File directory) throws IOException {
FileUtils.deleteDirectory(directory);
}
//清除该目录下的所有文件,但目录不删除
public static void cleanDirectory(File directory) throws IOException {
FileUtils.cleanDirectory(directory);
}
IOUtils
// 读取流信息
public static List<String> readLines(InputStream input) throws IOException {
return IOUtils.readLines(input);
}
// 读取流信息
public static List<String> readLines(Reader reader) throws IOException {
return IOUtils.readLines(reader);
}
// 批量写入文件中,并覆盖原有的文本
public static void writeLines(List<String> lines, File file)
throws FileNotFoundException, IOException {
IOUtils.writeLines(lines, null, new FileOutputStream(file));
}
//批量写入文件中,并在后面追加
public static void writeOneLine(List<String> lines, File file)
throws IOException {
OutputStream outputStream = new FileOutputStream(file, true);
IOUtils.writeLines(lines, null, outputStream, "UTF-8");
}
//将流对象转换成字符串
public static String toString(InputStream input) throws IOException {
return IOUtils.toString(input);
}
//关闭流对象
public static void closeIO(Closeable closeable) {
IOUtils.closeQuietly(closeable);
}
由于这些方法使用都非常的简单,所以相关的测试代码就不列举了,如果有不清楚的地方可以查看Apache相关的官方文档。
分享到:
相关推荐
Apache Commons IO是Apache软件基金会开发的一个Java库,它提供了大量的实用工具类,简化了I/...通过这个教程,你可以了解到Apache Commons IO库在处理文件编码转换时的强大功能,以及如何在实际项目中应用这些工具类。
"一些常用的common工具类"这个主题,涉及到的是那些广泛应用于多个项目,处理通用任务的类集合。这些工具类可能包含字符串处理、日期时间操作、数学计算、IO流操作等多个方面的功能。 首先,我们来看DTO(Data ...
它还包含了一些性能优化的工具类,例如集合的工厂方法、比较器和转换器,极大地增强了Java程序员处理集合的能力。 3. **Apache Commons Configuration**: 这是一个用于读取和管理配置数据的库。它可以处理多种...
本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...
在IO操作方面,Java的java.io包提供了基础的输入输出流,但实际应用中可能需要更高级的功能,如NIO(New IO)提供非阻塞I/O,Apache Commons IO提供了更多实用的IO工具类。 网络编程中,Java.net包提供了Socket和...
Apache Commons Lang是Java开发的一个非常重要的工具库,它提供了大量实用的工具类,极大地丰富了Java标准库的功能。这个库包含了许多与字符串处理、数组操作、日期时间转换、枚举处理、数学运算以及对象创建和比较...
4. **UnzipUtils和ZipUtils**:这两个工具类包含了实用方法,可以方便地进行ZIP文件的解压和打包,例如一次性解压整个ZIP文件到指定目录,或者将多个文件和目录打包成ZIP。 5. **递归操作**:Apache Commons ZIP库...
1. **通用工具库**:Apache Commons中最基础的部分是通用工具库,如`Collections`、`Lang`和`IO`。`Collections`提供了各种集合操作的辅助方法,如集合的复制、合并和排序。`Lang`提供了一些对基本Java对象的操作...
"Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...
1. **Commons Lang**:提供了一系列高级字符串处理、日期和时间操作、反射和运行时异常处理等工具类。通过`StringUtils`,我们可以方便地进行字符串操作;`DateUtils`帮助我们处理日期和时间;`ReflectionUtils`简化...
在Java编程中,工具类(Util Classes)是包含各种实用...通过封装这些常用工具类,开发人员可以快速构建功能丰富的应用,提高代码质量,并降低维护成本。了解并熟练运用这些工具和库,对于提升Java开发效率至关重要。
在Web开发中,尤其是使用Servlet时,如果你需要让用户上传文件,那么Apache Commons FileUpload就是不可或缺的工具。 文件上传在Web应用中非常常见,比如用户上传个人头像、提交文档等。在HTML表单中,可以通过`...
Apache Commons 是一个由Apache软件基金会维护的Java库集合,它为开发人员提供了大量实用的工具类和组件,极大地简化了常见的编程任务。这个库包含了众多模块,每个模块专注于特定的功能领域,例如字符串处理、数学...
FTP是一种应用层协议,用于在互联网上进行文件传输。它允许用户从远程服务器上传、下载文件,以及执行其他文件管理操作,如重命名或删除文件。Apache Commons Net库中的`FTPClient`类为开发者提供了一个方便的接口来...
**字符串工具类**:在Java中,`java.lang.String`类提供了许多内置的方法来处理字符串,但有时我们还需要更高级的功能,这时可以使用`java.util.StringUtils`(来自Apache Commons Lang库)或者Google的Guava库中的`...
"java常用开发工具类大全"可能包含了一系列这样的工具类,旨在帮助开发者高效地解决各种常见问题。下面我们将深入探讨几个常见的Java工具类库以及它们在实际开发中的应用。 1. **Java标准库中的工具类** - `java....
标题 "C#.net常用工具类" 涉及的核心知识点主要围绕.NET框架、NPOI库以及Excel数据的导入与导出。以下是对这些技术的详细介绍: .NET框架是由微软开发的一种面向对象的编程模型,它提供了丰富的类库,用于构建各种...
3. **commons-lang3-3.0.1.jar**: 提供了对 Java 核心语言类的补充,比如字符串处理、日期时间操作、反射辅助类、枚举工具等,是日常编程中非常常用的一个库。 4. **commons-httpclient-3.1.jar**: 这是 Apache ...
3. **自定义请求方式**: 这个工具类允许开发者根据需求自定义请求方法,比如在某些API接口中可能需要用到HEAD、OPTIONS或CONNECT等非标准请求。 4. **Java HTTPS工具类**: 工具类封装了HTTPS请求的实现细节,包括...
`Apache common包的作用.docx` 文件很可能包含了对上述各个组件的详细介绍和使用案例。而 `API.rar` 文件则可能是Apache Commons 的API文档,解压后可以查看详细的类和方法说明,这对于理解和使用Apache Commons ...