Hutool之文件工具——FileUtil

简介

我想在Java工具中,文件操做应该也是使用至关频繁的,可是Java对文件的操做因为牵涉到流,因此较为繁琐,各类Stream也是眼花缭乱,所以大部分项目里的util包中我想都有一个FileUtil的类,而本类就是对众多FileUtil的总结。缓存

Linux命令对应方法

这些方法都是按照Linux命令来命名的,方便熟悉Linux的用户见名知意,例如:app

  1. ls 返回给定目录的全部文件对象列表,路径能够是相对ClassPath路径或者绝对路径,不能够是压缩包里的路径。
  2. listFileNames 则是返回指定目录下的全部文件名,支持jar等压缩包。
  3. touch 建立文件,若是给定路径父目录不存在,也一同建立。
  4. del 删除文件或者目录,目录下有嵌套目录或者文件会一块儿删除。
  5. mkdir 建立目录,父目录不存在自动建立。
  6. createTempFile 建立临时文件,在程序运行完毕的时候,这个文件会被删除。
  7. copy 复制文件或目录,目标文件对象能够是目录,自动用原文件名,能够选择是否覆盖目标文件。
  8. move 移动文件或目录,原理是先复制,再删除原文件或目录
  9. isExist 文件或者目录是否存在。

经常使用方法

getAbsolutePath

得到绝对路径,若是给定路劲已是绝对路径,返回原路径,不然根据ClassPath或者给定类的相对位置得到其绝对位置工具

close

对于实现了Closeable接口的对象,能够直接调用此方法关闭,且是静默关闭,关闭出错将不会有任何调试信息。这个方法也是使用很是频繁的,例如文件流的关闭等等。调试

equals

比较两个文件是否相同code

文件读写

写文件

  1. getBufferedWriter 得到带缓存的写入对象,能够写字符串等。
  2. getPrintWritergetBufferedWriter的包装,能够有println等方法按照行写出。
  3. getOutputStream 会的文件的写出流想对象。
  4. writeString直接写字符串到文件,会覆盖以前的内容。
  5. appendString 追加字符串到文本。
  6. writeLines appendLines 覆盖写入和追加文本列表,每一个元素都是一行。
  7. writeBytes 写字节码。
  8. writeStream 写流中的内容到文件里。

读文件

  1. getReader 得到带缓存的Reader对象。
  2. readLines 按行读取文件中的数据,返回List,每个元素都是一行文本。
  3. load 按照给定的ReaderHandler对象读取文件中的数据,ReaderHandler是一个借口,实现后就能够操做Reader对象了,这个方法存在是为了不用户手动调用close方法。
  4. readString 直接读出文件中的全部文本。
  5. readBytes 读字节码

其余

  1. isModifed 文件是否被修改过,须要传入一个时间戳,用来比对最后修改时间。
  2. getExtension 得到文件的扩展名。
相关文章
相关标签/搜索