Android學習之檔案下載

來源:互聯網
上載者:User

     網路檔案是怎麼下載到本地的?簡單的說就跟你在本地複製粘貼是一樣的道理,就是把網路上檔案裡面的內容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不要有中文!)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.