網路檔案是怎麼下載到本地的?簡單的說就跟你在本地複製粘貼是一樣的道理,就是把網路上檔案裡面的內容copy到你本地上一個檔案裡面,這樣就實現了檔案的下載.
Andoird應用程式裡要實現檔案下載,需要哪些步驟呢?
一.獲得上網的許可權
我們要在網路上下載檔案,首先你得可以上網。可以上網還不行,你得給你的應用程式響應的訪問網路的許可權才行,我們只需要在AndroidManifest.xml中添加一行代碼就可以搞定。<uses-permission android:name="android.permission.INTERNET" /> 你就別問我在Manifest檔案的哪一個位置加了..
二.獲得HttpURLConnection對象
如何獲得HttpURLConnection對象呢?想要獲得HttpURLConnection對象,首先你得先得到你檔案的URL對象,其方法是URL myUrl = new URL(String url);傳進去的參數就是你檔案對應的String類型的URL咯,獲得你檔案的URL對象之後,我們可以調用其openConnection()的方法來獲得我們需要的HttpURLConnection對象。
HttpURLConnection huc = (HttpURLConnection)myUrl.openConnection();
三.獲得手機SDCard的操作許可權
你想把網路上的檔案下載到本地上,你得先在本地建立一個對應的檔案吧.既然你要先建立一個檔案,還是得給你的程式添加響應的操作SDCard的許可權,跟第一步一樣,我們只需加上操作SDCard的許可權的代碼。<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 你別再問我在哪個位置加了..
四.IO流操作
你要操作檔案,肯定就離不開IO流啦,Java基礎不行的速補啦..在這裡就講講步驟而已,由第三步設定好許可權之後呢,你就可以訪問你手機上的SDCard目錄啦,通過Environment.getExternalStorageDirectory()這個方法,這個方法返回的是File對象,一般我們是要操作SDCard目錄下的自己的目錄,所以我們可以直接在後面加上自己的目錄,Environment.getExternalStorageDirectory() + "/mypath",最好就是先通過Log.d的方法來判斷這個目錄是不是你想要的目錄,是的話再繼續下面的操作。
知道如何獲得SDCard目錄了,然後我們就得先在目錄下建立自己的檔案咯,如何建立檔案?那我就不講了..自己去看Java基礎吧,建立好檔案之後,我們第二步已經建立好了你要下載的檔案的HttpURLConnection對象,通過它的getInputStream()方法你就可以獲得網路上對應檔案的輸入資料流了。這裡可能有人會問,為什麼是輸入資料流呢?簡單的說這裡的輸入資料流就是把資料輸入到記憶體裡,那輸出資料流呢?那就是把記憶體裡的東西輸出到檔案中去。既然我們已經獲得了該檔案的輸入資料流,那我們就可以用該輸入資料流進行IO操作啦,把資料通過輸出資料流寫入到我們的檔案中,這樣就可以實現檔案的下載啦!
(PS:關於Android的許可權到底有哪些,你可以去官方文檔中搜尋android.Manifest.permission,在這個類的屬性都是一些相應的許可權。
如果你操作含有中文的文字檔的時候出現亂碼,你可以去看看我的另外一篇博文http://www.cnblogs.com/Qamefay/archive/2011/09/01/2161495.html
還有下載檔案的URL不要有中文!)