HuTool从入门到精通1-日期和文件工具类入门

现在准备用java调用webservice,返回得结果xmll需要解析,加上网上各种工具类。
使用hutool中的FileUtil想起来之前用过hutool,这里复习下。

1.简介

Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库,“Hu”是公司名称的表示,tool表示工具。Hutool谐音“糊涂”,一方面简洁易懂,一方面寓意“难得糊涂”。
Hutool官网
参考文档
api参考

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

在这里插入图片描述
上面是不同的组件,我们可以根据不同的业务场景来引入相应的组件。
当然也可以引人全部的组件 。hutool-all

2.入门 DateUtil的使用

java常用类之前用过常用的日期类。
网上日期工具类也一大堆,参差不齐,复制后还要改bug,这就是HuTool的意思,提供一套规范的工具类,使整个行业标准化,同时简化开发,使得程序员更快的上手。

2.1 pom

    <dependencies>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.3</version>
        </dependency>
    </dependencies>

2.2 DateUtil 使用

DateUtil 针对日期时间操作提供一系列静态方法
正常我们

        //当前时间
        Date date = new Date();
        System.out.println(date);

运行结果 Fri Jun 17 13:45:38 CST 2022
DateUtil

       //当前时间
        Date date = DateUtil.date();
        System.out.println(date);

运行结果 2022-06-17 13:38:48

        //当前时间
        Date date = DateUtil.date(new Date());
        System.out.println(date);
        //当前时间
        Date date = DateUtil.date(Calendar.getInstance());
        System.out.println(date);
        //当前时间
        Date date = DateUtil.date(System.currentTimeMillis());
        System.out.println(date);

运行结果 2022-06-17 13:46:02

        //当前时间
        String now = DateUtil.now();
        System.out.println(now);

运行结果 2022-06-17 13:46:02

         //当前日期字符串,格式:yyyy-MM-dd
        String today= DateUtil.today();
        System.out.println(today);

运行结果 2022-06-17

字符串转日期

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 = "2022-06-17";
        Date date = DateUtil.parse(dateStr);
        System.out.println(date);

更详细的日期时间工具-DateUtil

3. 文件工具类-FileUtil

3.1 简介

在IO操作中,文件的操作相对来说是比较复杂的,但也是使用频率最高的部分,我们几乎所有的项目中几乎都躺着一个叫做FileUtil或者FileUtils的工具类,我想Hutool应该将这个工具类纳入其中,解决用来解决大部分的文件操作问题。

总体来说,FileUtil类包含以下几类操作工具:

文件操作:包括文件目录的新建、删除、复制、移动、改名等
文件判断:判断文件或目录是否非空,是否为目录,是否为文件等等。
绝对路径:针对ClassPath中的文件转换为绝对路径文件。
文件名:主文件名,扩展名的获取
读操作:包括类似IoUtil中的getReader、readXXX操作
写操作:包括getWriter和writeXXX操作

在FileUtil中,我努力将方法名与Linux相一致,例如创建文件的方法并不是createFile,而是touch,这种统一对于熟悉Linux的人来说,大大提高了上手速度。当然,如果你不熟悉Linux,那FileUtil工具类的使用则是在帮助你学习Linux命令。这些类Linux命令的方法包括:

ls 列出目录和文件
touch 创建文件,如果父目录不存在也自动创建
mkdir 创建目录,会递归创建每层目录
del 删除文件或目录(递归删除,不判断是否为空),这个方法相当于Linux的delete命令
copy 拷贝文件或目录

Linux简单命令使用笔记

3.2 FileUtil的使用

isWindows 是否为Windows环境

public static boolean isWindows()

        boolean windows = FileUtil.isWindows();
        System.out.println(windows);

返回结果是 true

ls 列出指定路径下的目录和文件

        File[] ls = FileUtil.ls("E:\\baidupan\\java资料\\狂神说全部笔记内容");
        for (File l : ls) {
            System.out.println(l.getName());
        }

10、JavaSE:IO流.pdf
11、JavaSE:多线程.pdf
12、JavaSE:网络编程.pdf
13、JavaSE:Gui编程.pdf
14、JavaSE:注解和反射.pdf
15、MySQL和JDBC.pdf
16、前端:Html5.pdf
17、前端:CSS3.pdf
18、前端:JavaScript、jQuery.pdf
19、JavaWeb.pdf
1、JavaSE:Java入门.pdf
20、MyBatis.pdf
21、Spring.pdf
22、SpringMVC.pdf
23、大前端串讲.pdf
24、Vue精讲.pdf
25、SpringBoot入门及原理.pdf
26、SpringBoot操作数据库.pdf
27、SpringBoot开发单体应用.pdf
28、SpringBootWeb开发提升(Swagger).pdf
29、SpringSecurity权限控制.pdf
2、JavaSE:基础语法.pdf
30、整合Dubbo+Zookeeper.pdf
31、Shiro.pdf
32、SpringCloudNetflix-H版.pdf
33、JVM探究.pdf
34、JUC精讲.pdf
35、Git.pdf
36、Linux使用.pdf
37、Redis精讲.pdf
38、ElasticSearch.pdf
39、ActiveMQ.pdf
3、JavaSE:流程控制.pdf
40、Docker上.pdf
41、Docker下.pdf
4、JavaSE:方法.pdf
5、JavaSE:数组.pdf
6、JavaSE:面向对象.pdf
7、JavaSE:异常机制.pdf
8、JavaSE:常用类.pdf
9、JavaSE:集合框架.pdf
狂神说SpringMVC06:Json交互处理.pdf
狂神说SpringMVC07:Ajax研究.pdf

看样子是都获取到了。

isEmpty 文件是否为空

public static File[] ls(String path)

目录:里面没有文件时为空 文件:文件大小为0时为空

        File[] ls = FileUtil.ls("E:\\baidupan\\java资料\\狂神说全部笔记内容");
        for (File l : ls) {
            System.out.println(FileUtil.isEmpty(l));
        }

isDirEmpty 目录是否为空

public static boolean isDirEmpty(File dir)

exist 文件是否存在
判断文件是否存在,如果file为null,则返回false

public static boolean exist(File file)

       String file = "E:\\baidupan\\java资料\\狂神说全部笔记内容\\1、JavaSE:Java入门.pdf";
       if(FileUtil.exist(file)){
           System.out.println("文件存在");
       }

readString 读取文件内容

public static String readString(URL url,
Charset charset)

writeString将String写入文件,覆盖模式

public static File writeString(String content,
String path,
String charset)

       String file = "E:\\baidupan\\java资料\\Spring Boot课堂笔记.md";
       if(FileUtil.exist(file)){
           String readFile = FileUtil.readString(file, "UTF-8");

           FileUtil.writeString(readFile, "C:\\Users\\think1\\Desktop\\Spring Boot课堂笔记.md", "UTF-8");
       }

newFile相当于调用new File(),不做任何处理

public static File newFile(String path)

       String file = "E:\\baidupan\\java资料\\Spring Boot课堂笔记2.md";
       if(!FileUtil.exist(file)){
           File file1 = FileUtil.newFile(file);
           FileUtil.writeString("11", file1, "UTF-8");
       }

del删除文件或者文件夹

public static boolean del(String fullFileOrDirPath)

       String file = "E:\\baidupan\\java资料\\Spring Boot课堂笔记2.md";
       if(FileUtil.exist(file)){
           FileUtil.del(file);
       }

FileUtil的简介详情去开篇的api参考搜下方法,比较杂乱
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值