现在准备用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 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参考搜下方法,比较杂乱