Hutool 的文件工具 -- FileUtil
最编程
2024-05-01 21:03:54
...
开源中国社区团队直播首秀,以分享为名讲述开源中国社区背后的故事”
简介
我想在Java工具中,文件操作应该也是使用相当频繁的,但是Java对文件的操作由于牵涉到流,所以较为繁琐,各种Stream也是眼花缭乱,因此大部分项目里的util包中我想都有一个FileUtil的类,而本类就是对众多FileUtil的总结。
Linux命令对应方法
这些方法都是按照Linux命令来命名的,方便熟悉Linux的用户见名知意,例如:
-
ls
返回给定目录的所有文件对象列表,路径可以是相对ClassPath路径或者绝对路径,不可以是压缩包里的路径。 -
listFileNames
则是返回指定目录下的所有文件名,支持jar等压缩包。 -
touch
创建文件,如果给定路径父目录不存在,也一同创建。 -
del
删除文件或者目录,目录下有嵌套目录或者文件会一起删除。 -
mkdir
创建目录,父目录不存在自动创建。 -
createTempFile
创建临时文件,在程序运行完毕的时候,这个文件会被删除。 -
copy
复制文件或目录,目标文件对象可以是目录,自动用原文件名,可以选择是否覆盖目标文件。 -
move
移动文件或目录,原理是先复制,再删除原文件或目录 -
isExist
文件或者目录是否存在。
常用方法
getAbsolutePath
获得绝对路径,如果给定路劲已经是绝对路径,返回原路径,否则根据ClassPath或者给定类的相对位置获得其绝对位置
close
对于实现了Closeable接口的对象,可以直接调用此方法关闭,且是静默关闭,关闭出错将不会有任何调试信息。这个方法也是使用非常频繁的,例如文件流的关闭等等。
equals
比较两个文件是否相同
文件读写
写文件
-
getBufferedWriter
获得带缓存的写入对象,可以写字符串等。 -
getPrintWriter
对getBufferedWriter
的包装,可以有println等方法按照行写出。 -
getOutputStream
会的文件的写出流想对象。 -
writeString
直接写字符串到文件,会覆盖之前的内容。 -
appendString
追加字符串到文本。 -
writeLines
appendLines
覆盖写入和追加文本列表,每个元素都是一行。 -
writeBytes
写字节码。 -
writeStream
写流中的内容到文件里。
读文件
-
getReader
获得带缓存的Reader对象。 -
readLines
按行读取文件中的数据,返回List,每一个元素都是一行文本。 -
load
按照给定的ReaderHandler
对象读取文件中的数据,ReaderHandler
是一个借口,实现后就可以操作Reader对象了,这个方法存在是为了避免用户手动调用close方法。 -
readString
直接读出文件中的所有文本。 -
readBytes
读字节码
其他
-
isModifed
文件是否被修改过,需要传入一个时间戳,用来比对最后修改时间。 -
getExtension
获得文件的扩展名。
推荐阅读
-
深入探究Lustre分布式文件系统中的Utils工具: 一个详尽解析
-
使用A2L工具创建和填充elf文件的指南
-
一键生成ASAP2 1.6版A2L文件的ASAM A2L文件合成工具
-
了解assimp库:一个能转换三维模型文件的实用工具
-
用Java的FFmpeg工具合并音频文件
-
如何使用SparkMD5工具快速计算文件的MD5值
-
实战攻略:工作流引擎深度解析 - 思维导图与具体案例" 目录概览: 1. 业务场景实战合集 2. 背景介绍:处理复杂场景 - 如请假、离职流程中的多步骤审批差异 - 详细示例:请假与离职流程的应用演示 3. 案例应用实例: - 内部企业系统(如OA)中的请假、离职流程审批 - 在内容创作工具(如PPT、海报模板)提供下载功能时,针对不同租户设置个性化审批流程 4. 技术选型与实践探讨 注:图片文件名 - "思维导图.png" 和 "请假流程.png" 无需修改。
-
10个可用网络的免费文件管理工具
-
如何使用bootstrap-fileinput工具快速预览选中的图片文件,而不进行实际上传操作
-
如何将iOS映像转换为tar文件:寻找适合的iOS镜像转存工具