![【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么利用HttpUrlConnection類下載文件_第1頁](http://file4.renrendoc.com/view/68b0c9bdfbec7b04f63e6b3f2355f44d/68b0c9bdfbec7b04f63e6b3f2355f44d1.gif)
![【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么利用HttpUrlConnection類下載文件_第2頁](http://file4.renrendoc.com/view/68b0c9bdfbec7b04f63e6b3f2355f44d/68b0c9bdfbec7b04f63e6b3f2355f44d2.gif)
![【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么利用HttpUrlConnection類下載文件_第3頁](http://file4.renrendoc.com/view/68b0c9bdfbec7b04f63e6b3f2355f44d/68b0c9bdfbec7b04f63e6b3f2355f44d3.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android中怎么利用HttpUrlConnection類下載文件
Android中怎么利用HttpUrlConnection類下載文件,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面在下將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。具體代碼如所示:/**
*
get方法的文件下載
*
<p>
*
特別說明
android中的progressBar是google唯一的做了處理的可以在子線程中更新UI的控件
*
*
@param
path
*/
private
void
httpDown(final
String
path)
{
new
Thread()
{
@Override
public
void
run()
{
URL
url;
HttpURLConnection
connection;
try
{
//統(tǒng)一資源
url
=
new
URL(path);
//打開鏈接
connection
=
(HttpURLConnection)
url.openConnection();
//設(shè)置鏈接超時(shí)
connection.setConnectTimeout(4000);
//設(shè)置允許得到服務(wù)器的輸入流,默認(rèn)為true可以不用設(shè)置
connection.setDoInput(true);
//設(shè)置允許向服務(wù)器寫入數(shù)據(jù),一般get方法不會(huì)設(shè)置,大多用在post方法,默認(rèn)為false
connection.setDoOutput(true);//此處只是為了方法說明
//設(shè)置請(qǐng)求方法
connection.setRequestMethod("GET");
//設(shè)置請(qǐng)求的字符編碼
connection.setRequestProperty("Charset",
"utf-8");
//設(shè)置connection打開鏈接資源
connection.connect();
//得到鏈接地址中的file路徑
String
urlFilePath
=
connection.getURL().getFile();
//得到url地址總文件名
file的separatorChar參數(shù)表示文件分離符
String
fileName
=
urlFilePath.substring(urlFilePath.lastIndexOf(File.separatorChar)
+
1);
//創(chuàng)建一個(gè)文件對(duì)象用于存儲(chǔ)下載的文件
此次的getFilesDir()方法只有在繼承至Context類的類中
//
可以直接調(diào)用其他類中必須通過Context對(duì)象才能調(diào)用,得到的是內(nèi)部存儲(chǔ)中此應(yīng)用包名下的文件路徑
//如果使用外部存儲(chǔ)的話需要添加文件讀寫權(quán)限,5.0以上的系統(tǒng)需要?jiǎng)討B(tài)獲取權(quán)限
此處不在不做過多說明。
File
file
=
new
File(getFilesDir(),
fileName);
//創(chuàng)建一個(gè)文件輸出流
FileOutputStream
outputStream
=
new
FileOutputStream(file);
//得到鏈接的響應(yīng)碼
200為成功
int
responseCode
=
connection.getResponseCode();
if
(responseCode
==
HttpURLConnection.HTTP_OK)
{
//得到服務(wù)器響應(yīng)的輸入流
InputStream
inputStream
=
connection.getInputStream();
//獲取請(qǐng)求的內(nèi)容總長度
int
contentLength
=
connection.getContentLength();
//設(shè)置progressBar的Max
mPb.setMax(contentLength);
//創(chuàng)建緩沖輸入流對(duì)象,相對(duì)于inputStream效率要高一些
BufferedInputStream
bfi
=
new
BufferedInputStream(inputStream);
//此處的len表示每次循環(huán)讀取的內(nèi)容長度
int
len;
//已經(jīng)讀取的總長度
int
totle
=
0;
//bytes是用于存儲(chǔ)每次讀取出來的內(nèi)容
byte[]
bytes
=
new
byte[1024];
while
((len
=
bfi.read(bytes))
!=
-1)
{
//每次讀取完了都將len累加在totle里
totle
+=
len;
//每次讀取的都更新一次progressBar
mPb.setProgress(totle);
//通過文件輸出流寫入從服務(wù)器中讀取的數(shù)據(jù)
outputStream.write(bytes,
0,
len);
}
//關(guān)閉打開的流對(duì)象
outputStream.close();
inputStream.close();
bfi.close();
runOnUiThread(new
Runnable()
{
@Override
public
void
run()
{
Toast.makeText(MainActivity.this,
"下載完成!",
Toast.LENGTH_SHORT)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境設(shè)計(jì)的藝術(shù)性與審美培養(yǎng)探討
- 生產(chǎn)線作業(yè)計(jì)劃與實(shí)時(shí)調(diào)度分析
- 班級(jí)紀(jì)律執(zhí)行與校園文化建設(shè)的互動(dòng)關(guān)系
- 生態(tài)城市規(guī)劃中的綠色交通系統(tǒng)建設(shè)
- 現(xiàn)代辦公中的網(wǎng)絡(luò)教育平臺(tái)應(yīng)用
- Unit 6 My family(說課稿)-2024-2025學(xué)年滬教版(五四制)(2024)英語一年級(jí)上冊(cè)
- 2024年二年級(jí)品生下冊(cè)《大自然的奧秘》說課稿 冀教版001
- 2024-2025學(xué)年高中歷史 專題一 古代中國經(jīng)濟(jì)的基本結(jié)構(gòu)與特點(diǎn) 1.3 古代中國的商業(yè)經(jīng)濟(jì)說課稿 人民版必修2
- 10的認(rèn)識(shí)和加減法(說課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版(2024)001
- 14《圓明園的毀滅》第二課時(shí)(說課稿)2024-2025學(xué)年語文五年級(jí)上冊(cè)統(tǒng)編版
- 中國人口研究專題報(bào)告-中國2025-2100年人口預(yù)測(cè)與政策建議-西南財(cái)經(jīng)大學(xué)x清華大學(xué)-202501
- 2025年度廚師職業(yè)培訓(xùn)學(xué)院合作辦學(xué)合同4篇
- 《組織行為學(xué)》第1章-組織行為學(xué)概述
- 25版六年級(jí)寒假特色作業(yè)
- 浙江省杭州市9+1高中聯(lián)盟2025屆高三一診考試英語試卷含解析
- GB/T 19228.1-2024不銹鋼卡壓式管件組件第1部分:卡壓式管件
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫380題(含答案)
- (高清版)DZT 0399-2022 礦山資源儲(chǔ)量管理規(guī)范
- 初一英語英語閱讀理解專項(xiàng)訓(xùn)練15篇
- 實(shí)現(xiàn)結(jié)構(gòu)化:初中語文大單元教學(xué)設(shè)計(jì)的核心
- FZ∕T 54088-2016 錦綸6全牽伸單絲
評(píng)論
0/150
提交評(píng)論