现在准备用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 resourceutil 读取classpath 文件 hutool 文件操作_工具类

上面是不同的组件,我们可以根据不同的业务场景来引入相应的组件。

当然也可以引人全部的组件 。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 2022DateUtil

//当前时间
        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参考搜下方法,比较杂乱

hutool resourceutil 读取classpath 文件 hutool 文件操作_System_02