使用FileUtils簡化你的文件操作

前言:

    在工作當中我們往往遇到很多文件的操作,我們也習慣寫一些自己定義的工具類來簡化文件操作,其實apache的commons的FileUtils類就是這樣一個工具類,使用它能大大的簡化我們對文件的操作。

 

準備工作:

    1.下載jar     地址:http://commons.apache.org/proper/commons-io/download_io.cgi

    2.把commons-io-2.4.jar 這個文件導入到你的項目中

 

說明:

    1.由於是一個工具類使用都非常的簡單 所以本文只是將其分類,展示它能夠提供給我們什麼。

    2.習慣看api的可以直接看官方的api   傳送門

    3.可以看一看官方的指引  指引傳送門

    4.FileUtils只是commons-io的其中一個工具類

 

分類說明演示:

    1.寫 文件/文件夾

Java代碼  收藏代碼
  1. /* 寫文件 
  2.  * 1.這裏只列出3種方式全參數形式,api提供部分參數的方法重載 
  3.  * 2.最後一個布爾參數都是是否是追加模式 
  4.  * 3.如果目標文件不存在,FileUtils會自動創建 
  5.  * */  
  6. //static void:write(File file, CharSequence data, String encoding, boolean append)   
  7. FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序換api","UTF-8",true);  
  8.   
  9. //static void:writeLines(File file, Collection<?> lines, boolean append)   
  10. List<String> lines=new ArrayList<String>();  
  11. lines.add("歡迎訪問:");lines.add("www.cxyapi.com");  
  12. FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);  
  13.   
  14. //static void:writeStringToFile(File file, String data, String encoding, boolean append)   
  15. FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy""UTF-8",true);  

 

    2.讀 文件/文件夾

Java代碼  收藏代碼
  1. //讀文件  
  2. //static String:readFileToString(File file, String encoding)   
  3. System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));  
  4.   
  5. //static List<String>:readLines(File file, String encoding)   
  6. System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一個list  

 

    3.刪除 文件/文件夾

Java代碼  收藏代碼
  1. //刪除目錄  
  2. //static void:deleteDirectory(File directory)   
  3. FileUtils.deleteDirectory(new File("D:/not/cxyapi"));  
  4.   
  5. //static boolean:deleteQuietly(File file)   
  6. FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夾不是空任然可以被刪除,永遠不會拋出異常  

 

    4.移動 文件/文件夾

Java代碼  收藏代碼
  1. //移動文件 或 文件夾  
  2. //static void:moveDirectory(File srcDir, File destDir)   
  3. FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意這裏 第二個參數文件不存在會引發異常  
  4. //static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)   
  5. FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);  
  6. /* 上面兩個方法的不同是: 
  7.  * moveDirectory:D:/cxyapi2裏的內容是D:/cxyapi1的內容。 
  8.  * moveDirectoryToDirectory:D:/cxyapi2文件夾移動到到D:/cxyapi3裏 
  9.  *  
  10.  * 下面的3個都比較簡單沒提供示例,只提供了api 
  11.  * 其中moveToDirectory和其他的區別是 它能自動識別操作文件還是文件夾 
  12.  */  
  13. //static void:moveFileToDirectory(srcFile, destDir, createDestDir)  
  14. //static void:moveFile(File srcFile, File destFile)   
  15. //static void:moveToDirectory(File src, File destDir, boolean createDestDir)  

 

    5.copy

Java代碼  收藏代碼
  1. //結果是cxyapi和cxyapi1在同一目錄  
  2. FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));   
  3. //結果是將cxyapi拷貝到cxyapi2下  
  4. FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));  
  5.   
  6. //拷貝文件  
  7. FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));  
  8. //拷貝文件到目錄中  
  9. FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));  
  10. //拷貝url到文件  
  11. FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));  

 

    6.其他

Java代碼  收藏代碼
  1. //判斷是否包含文件或者文件夾  
  2. boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));  
  3. System.out.println(b);  
  4.   
  5. //獲得臨時目錄 和 用戶目錄  
  6. System.out.println(FileUtils.getTempDirectoryPath());  
  7. System.out.println(FileUtils.getUserDirectoryPath());  
  8.   
  9. //打開流,如果不存在創建文件及其目錄結構  
  10. //第二個參數表示 文件流是否是追加方式  
  11. FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);  
  12. fos.write(new String("歡迎訪問:www.cxyapi.com\r\n").getBytes());  
  13. fos.close();  
  14.   
  15. //文件 或 文件夾大小  
  16. System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));  
  17. System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));  

 

聲明:

1.原創文章,轉載請標明並加本文連接。

2.文章反映個人愚見,如有異議歡迎討論指正

3.更多的內容請看我的  個人博客(測試版)

原文:http://snkcxy.iteye.com/blog/1845862

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章