`

Apache common常用工具类

阅读更多

在项目中我们看到了很多同事喜欢进行相关的封装,我并不是反对,但是有些方法其实第三方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 common io转码工具类入门教程

    Apache Commons IO是Apache软件基金会开发的一个Java库,它提供了大量的实用工具类,简化了I/...通过这个教程,你可以了解到Apache Commons IO库在处理文件编码转换时的强大功能,以及如何在实际项目中应用这些工具类。

    一些常用的common工具类

    "一些常用的common工具类"这个主题,涉及到的是那些广泛应用于多个项目,处理通用任务的类集合。这些工具类可能包含字符串处理、日期时间操作、数学计算、IO流操作等多个方面的功能。 首先,我们来看DTO(Data ...

    apache common api(chm)

    它还包含了一些性能优化的工具类,例如集合的工厂方法、比较器和转换器,极大地增强了Java程序员处理集合的能力。 3. **Apache Commons Configuration**: 这是一个用于读取和管理配置数据的库。它可以处理多种...

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...

    一些java常用的工具类

    在IO操作方面,Java的java.io包提供了基础的输入输出流,但实际应用中可能需要更高级的功能,如NIO(New IO)提供非阻塞I/O,Apache Commons IO提供了更多实用的IO工具类。 网络编程中,Java.net包提供了Socket和...

    apache common-lang

    Apache Commons Lang是Java开发的一个非常重要的工具库,它提供了大量实用的工具类,极大地丰富了Java标准库的功能。这个库包含了许多与字符串处理、数组操作、日期时间转换、枚举处理、数学运算以及对象创建和比较...

    org.apache.common.zip

    4. **UnzipUtils和ZipUtils**:这两个工具类包含了实用方法,可以方便地进行ZIP文件的解压和打包,例如一次性解压整个ZIP文件到指定目录,或者将多个文件和目录打包成ZIP。 5. **递归操作**:Apache Commons ZIP库...

    Apache Commons

    1. **通用工具库**:Apache Commons中最基础的部分是通用工具库,如`Collections`、`Lang`和`IO`。`Collections`提供了各种集合操作的辅助方法,如集合的复制、合并和排序。`Lang`提供了一些对基本Java对象的操作...

    Java常用工具类包包含各种常用开发工具

    "Java常用工具类包"是一个集合,它包含了多种针对不同场景的工具类,如文件操作、文本处理、对象转换等。下面将详细介绍这些工具类的主要功能及其应用场景。 1. **文件对比**: - Java中的`java.io.File`类可以...

    apache-common最全的源码

    1. **Commons Lang**:提供了一系列高级字符串处理、日期和时间操作、反射和运行时异常处理等工具类。通过`StringUtils`,我们可以方便地进行字符串操作;`DateUtils`帮助我们处理日期和时间;`ReflectionUtils`简化...

    java常用工具类封装

    在Java编程中,工具类(Util Classes)是包含各种实用...通过封装这些常用工具类,开发人员可以快速构建功能丰富的应用,提高代码质量,并降低维护成本。了解并熟练运用这些工具和库,对于提升Java开发效率至关重要。

    apache-common-uploadfiile

    在Web开发中,尤其是使用Servlet时,如果你需要让用户上传文件,那么Apache Commons FileUpload就是不可或缺的工具。 文件上传在Web应用中非常常见,比如用户上传个人头像、提交文档等。在HTML表单中,可以通过`...

    apache commons 开源工具列举

    Apache Commons 是一个由Apache软件基金会维护的Java库集合,它为开发人员提供了大量实用的工具类和组件,极大地简化了常见的编程任务。这个库包含了众多模块,每个模块专注于特定的功能领域,例如字符串处理、数学...

    Apache Common-net Ftp客户端实例

    FTP是一种应用层协议,用于在互联网上进行文件传输。它允许用户从远程服务器上传、下载文件,以及执行其他文件管理操作,如重命名或删除文件。Apache Commons Net库中的`FTPClient`类为开发者提供了一个方便的接口来...

    Java常用工具类.zip

    **字符串工具类**:在Java中,`java.lang.String`类提供了许多内置的方法来处理字符串,但有时我们还需要更高级的功能,这时可以使用`java.util.StringUtils`(来自Apache Commons Lang库)或者Google的Guava库中的`...

    java常用开发工具类大全

    "java常用开发工具类大全"可能包含了一系列这样的工具类,旨在帮助开发者高效地解决各种常见问题。下面我们将深入探讨几个常见的Java工具类库以及它们在实际开发中的应用。 1. **Java标准库中的工具类** - `java....

    C#.net常用工具类

    标题 "C#.net常用工具类" 涉及的核心知识点主要围绕.NET框架、NPOI库以及Excel数据的导入与导出。以下是对这些技术的详细介绍: .NET框架是由微软开发的一种面向对象的编程模型,它提供了丰富的类库,用于构建各种...

    apache-common最全的jar包

    3. **commons-lang3-3.0.1.jar**: 提供了对 Java 核心语言类的补充,比如字符串处理、日期时间操作、反射辅助类、枚举工具等,是日常编程中非常常用的一个库。 4. **commons-httpclient-3.1.jar**: 这是 Apache ...

    Java发 Https请求工具类 支持SSL

    3. **自定义请求方式**: 这个工具类允许开发者根据需求自定义请求方法,比如在某些API接口中可能需要用到HEAD、OPTIONS或CONNECT等非标准请求。 4. **Java HTTPS工具类**: 工具类封装了HTTPS请求的实现细节,包括...

    apache common系列包的作用以及帮助文档

    `Apache common包的作用.docx` 文件很可能包含了对上述各个组件的详细介绍和使用案例。而 `API.rar` 文件则可能是Apache Commons 的API文档,解压后可以查看详细的类和方法说明,这对于理解和使用Apache Commons ...

Global site tag (gtag.js) - Google Analytics