先來看一下完整的範例程式碼:
package idv.jk.stock;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.io.FileUtils;
public class TestFirst {
public static void main(String[] args) {
try
{
String strUrl = "你要下載的檔案網址";
URL source = new URL(strUrl);
String theStrDestDir = "你要下載的檔案目的資料夾";
File theStockDest = new File(theStrDestDir);
FileUtils.forceMkdir(theStockDest);
File destination = new File(theStrDestDir +
"下載儲存的檔名");
FileUtils.copyURLToFile(source, destination);
//File file = new File(".");
System.out.println("File Downloaded!");
} catch (MalformedURLException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
再來,小弟針對幾個重點做個說明,另外可以看一下Commons IO相關文件。
先看到第19行的位置,小弟使用
FileUtils.forceMkdir先來建立要存放下載檔案的資料夾,使用FileUtils.forceMkdir有一個好處,小弟不用擔心目的資料夾的父資料夾是否存在,使用此方法,會幫小弟傳入的資料夾參數依層建好。
再來最主要的重點在,在第24行中,使用
FileUtils.copyURLToFile這個方法,將網路上的檔案下載回來!
第一個參數為指向要下載網址的
URL(文件)物件,第二個為下載檔案路徑的File(文件)物件。
但若再仔細看
FileUtils.copyURLToFile的文件說明,在存放下載檔案的資料夾不存在時,其實此方法就會幫小弟建立目的資料夾,所有第19行先行建立目的資料夾的步驟就可以省略。
參考資料
1 則留言:
謝謝你的分享,非常有幫助!!
張貼留言