【2】java常用工具整理

464 阅读1分钟

一.判空

1.对象判断是否为null

  • ObjectUtil.isNull
  • ObjectUtil.isNotNull

注意:此方法不能判断对象中字段为空的情况,如果需要检查Bean对象中字段是否全空,请使用BeanUtil.isEmpty

2.字符串判断是否为空

  1. 没有特别说明,使用ObjectUtil.isNull判断即可
  2. 判断是否为null或者为空字符串,使用StrUtil.isEmpty()进行判断
  3. 判断不可见字符串为空(例如:空字符,空格),使用StrUtil.isBlank()进行判断

3.集合判断是否为空

  1. 没有特别说明,使用ObjectUtil.isNull判断即可
  2. 判断是否为null或者为空数据,使用StrUtil.isEmpty()进行判断
    List<String> test = new ArrayList<>();
    System.out.println(CollUtil.isEmpty(test));

二.日期获取和格式校验

Date、long、Calendar之间的相互转换

//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();

字符串转日期

DateUtil.parse方法会自动识别一些常用格式,包括:

yyyy-MM-dd HH:mm:ss

  • yyyy/MM/dd HH:mm:ss
  • yyyy.MM.dd HH:mm:ss
  • yyyy年MM月dd日 HH时mm分ss秒
  • yyyy-MM-dd
  • yyyy/MM/dd
  • yyyy.MM.dd
  • HH:mm:ss
  • HH时mm分ss秒
  • yyyy-MM-dd HH:mm
  • yyyy-MM-dd HH:mm:ss.SSS
  • yyyyMMddHHmmss
  • yyyyMMddHHmmssSSS
  • yyyyMMdd
  • EEE, dd MMM yyyy HH:mm:ss z
  • EEE MMM dd HH:mm:ss zzz yyyy
  • yyyy-MM-dd'T'HH:mm:ss'Z'
  • yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
  • yyyy-MM-dd'T'HH:mm:ssZ
  • yyyy-MM-dd'T'HH:mm:ss.SSSZ
String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

我们也可以使用自定义日期格式转化:

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr, "yyyy-MM-dd");

格式化日期输出

String dateStr = "2017-03-01";
Date date = DateUtil.parse(dateStr);

//结果 2017/03/01
String format = DateUtil.format(date, "yyyy/MM/dd");

//常用格式的格式化,结果:2017-03-01
String formatDate = DateUtil.formatDate(date);

//结果:2017-03-01 00:00:00
String formatDateTime = DateUtil.formatDateTime(date);

//结果:00:00:00
String formatTime = DateUtil.formatTime(date);

获取Date对象的某个部分

Date date = DateUtil.date();
//获得年的部分
DateUtil.year(date);
//获得月份,从0开始计数
DateUtil.month(date);
//获得月份枚举
DateUtil.monthEnum(date);
//.....

三.文件

1.文件路径获取

a.某个resources下的路径

String filePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
复制代码

也就是Classes下的路径

b.当前运行的tomcat的路径

String realPath = request.getSession().getServletContext().getRealPath("");
复制代码

其返回值为当前运行的tomcat路径  

其路径为:xxxx/xxxx/tomcat/webapps 

2.将文件流返回给前端

public void backResponse(HttpServletResponse response,String contentType,String filePath) {
    FileReader fileReader = new FileReader(filePath);
    byte[] data = fileReader.readBytes();
    response.setContentType(contentType);
    try (OutputStream out= response.getOutputStream() ){
        out.write(data);
        out.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

3.文件的克隆

public Object cloneFile(String filePath) {
    return ObjectUtil.cloneByStream(new File(filePath));
}

4.对上传的文件进行处理

1.将文件保存到指定路径

5.Java实现word模板导出

juejin.cn/post/712524…

6.Java实现word转pdf

juejin.cn/post/712672…

7.Java导出Excel样式设置

juejin.cn/post/712753…