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 得到文件的擴展名。
相關文章
相關標籤/搜索