先來看一下完整的範例程式碼:
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 則留言:
謝謝你的分享,非常有幫助!!
張貼留言