1. 程式人生 > >apache的FileUtils的jar包下載匯入以及FileUtils方法

apache的FileUtils的jar包下載匯入以及FileUtils方法

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


Java中的一般的方法,我們要複製一個檔案,可能需要讀取原始檔,生成流物件,再寫入一個新的檔案中,使用apache commons-io很容就可以處理檔案的複製。
下面的例子演示我們怎樣使用FileUtils.copyFile方法在同一個資料夾複製檔案和使用FileUtils.copyFileToDirectory方法複製到指定的資料夾中。其中System.getProperty("java.io.tmpdir")為通過JVM讀取java.io.tmpdir屬性取得臨時資料夾,每種作業系統有所不同,Windows一般是C:\DOCUME~1\使用者~1\LOCALS~1\Temp,Solaris一般是:/var/tmp/,Linux和Mac OS X一般是:/tmp,Windows的java.io.tmpdir屬性值可以看環境變數->使用者變數中的TMP。
當然我們一般使用的是絕對或相對路徑,如要複製到F:\ajava目錄中,我們只需將targetDir改成File targetDir = new File("F:\\ajava");執行後就可以看到結果。
package demo2;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.*;
public class demo2 {

	
	
	     public static void main(String[] args)
	     {
	         try
	         {
	         // 源File物件
	         File source = new File("E:/test/testfyw.txt");
	         //寫入文字在source檔案中,true為追加
	         FileUtils.write(source, "程式換api","UTF-8",true);  
	         // 備份的File物件
	         File target = new File("E:/test/testfyw2.txt");
	        
	          //通過JVM讀取java.io.tmpdir屬性取得臨時資料夾
	         // File targetDir = new File(System.getProperty("java.io.tmpdir"));
	         File directory = new File("E:/test/textin");
	        
	             //在同一個資料夾複製檔案
	             System.out.println("複製 " + source + " 檔案到 " + target);
	             FileUtils.copyFile(source, target);
	            
	             String readFileToString = FileUtils.readFileToString(source);
	             System.out.println("檔案裡的內容是:"+readFileToString);
	             
	             
	             // 根據指定的資料夾複製
	             System.out.println("複製 " + source + " 檔案到" + directory + "目錄");
	             FileUtils.copyFileToDirectory(source, directory);
	             //刪除目錄  
	             //static void:deleteDirectory(File directory) 
	             System.out.println("刪除目錄:"+directory);
	             FileUtils.deleteDirectory(directory);  
	               
	            
	           //資料夾不是空,依然可以被刪除,永遠不會丟擲異常  
	             System.out.println("刪除目錄:資料夾不是空,依然可以被刪除,永遠不會丟擲異常 "+"E:/test/test2");
	             FileUtils.deleteQuietly(new File("E:/test/test2")); 
	             
	         } catch (IOException e)
	         {
	            
	             e.printStackTrace();
	         }
	     }
	 }