1. 程式人生 > >利用HttpURLConnection下載檔案的核心程式碼程式碼

利用HttpURLConnection下載檔案的核心程式碼程式碼

// 下載媒體檔案
    private void downLoad(String urlStr){
        // 建立HashMap,儲存下載到的檔案資訊
        Map map = new HashMap<String, Object>();
        InputStream is = null;
        FileOutputStream fos = null;
        HttpURLConnection conn = null;
        try {
            URL url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true);
            conn.connect();            
            int len = conn.getContentLength(); // 記錄所要下載內容的總位元組數
            map.put("length", len);
            is = conn.getInputStream();
            // 建立一個檔案物件,檔案將被建立到sdcard根目錄,檔名為下載開始時間的毫秒數+檔案字尾名
            DataInputStream dis = new DataInputStream(is);
            fos = new FileOutputStream("/mnt/sdcard/"+System.currentTimeMillis()+"."+urlStr.substring(urlStr.lastIndexOf(".")+1));
            byte[] buffer = new byte[1024*10]; // 緩衝位元組陣列
            int actualLen = 0;
            while((actualLen=is.read(buffer)) != -1){
                fos.write(buffer, 0, actualLen);
                currentProgress += actualLen;
                map.put("currentProgress", currentProgress);
                mHandler.obtainMessage(1, map).sendToTarget();
                fos.flush();
            }            
            mHandler.obtainMessage(2).sendToTarget();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                try {
                    if(fos != null){
                        fos.close();
                    }
                    if(is != null){
                        is.close();
                    }
                    if(conn != null){
                        
                    }
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        
    }

相關推薦

利用HttpURLConnection下載檔案核心程式碼程式碼

// 下載媒體檔案     private void downLoad(String urlStr){         // 建立HashMap,儲存下載到的檔案資訊         Map map = new HashMap<String, Object>()

AspNetCore 基於流下載檔案與示例程式碼

那麼既然有上傳檔案就一定有下載檔案,那麼我們常用的下載方式有什麼呢   流、 程式碼如下: public IActionResult DownLoad(string file) { var addrUrl = file;

使用HttpURLConnection下載檔案

一.把Android.permission.INTERNET新增到AndroidMainfest.xml配置檔案中,使整個程式有訪問網路的許可權。 [html]  view plain copy

利用curl下載檔案,包括Get和Post

#define STOP_DOWNLOAD_AFTER_THIS_MANY_BYTES         60000000000 #define MINIMAL_PROGRESS_FUNCTIONALITY_INTERVAL     3 &n

利用nfs下載linux核心

利用路由器,將主機,虛擬機器,開發板在橋接環境下組建區域網 (1)設定主機,虛擬機器為同一個網段(這裡虛擬機器為ubuntu 12.04 發現採用橋接後,網路設定為自動獲取就沒問題了, 當我想手動設定固定ip的時候,出現一個問題:參照主機的網路引數設定ip,閘道器等,也設定

利用WGET下載檔案,並儲存到指定目錄

wget是Linux上一個非常不錯的下載指令,而其指令的內容雖然說是非常簡單,但內藏許多的引數,也算是Linux工作者常用的指令之一。 而這個指令我想在各大系統都預設有提供,包括了Ubuntu、Fedora等,而一般來說,要使用wget下載檔案,只需要打以下的

Android利用HttpURLConnection實現檔案上傳

普通Java應用 瀏覽器在上傳的過程中是將檔案以流的形式提交到伺服器端的,如果直接使用Servlet獲取上傳檔案的輸入流然後再解析裡面的請求引數是比較麻煩,所以Java中Web端可以用的上傳元件有兩種: FileUpload【操作比較複雜】struts上傳的功能就是基於這個實現的。

Android學習之使用HttpURLConnection下載檔案

package com.example.administrator.myapplication; ​ import android.os.Bundle; import android.os.Environment; import android.support.v7.app

HttpURLConnection 下載檔案工具類

封裝的工具類 package cn.com.bjhj.utils; import android.os.Environment; import java.io.File; import java.io.FileOutputStream; import java.io.

httpurlconnection下載pdf檔案打不開的原因,和解決程式碼

前幾天遇見一個問題,httpurlconnection傳送請求下載pdf檔案的時候,檔案是下載下來了,但是打不開。 之前並沒有對pdf操作的相關功能,所以一直是使用的字元流讀取內容。 字元流主要針對一些文字文件(比位元組流操作的效率要高),比如.txt、.doc,而pdf就不行。 位元組流幾乎可

C程式碼實現從FTP上下載檔案

從FTP上下載檔案這個功能我早就想實現了,但是苦於百度的文章大多是下載連結,一直沒捨得積分下載,這次通過查閱MSDN,將一套下載流程函式摸了一下,寫出程式碼實現從FTP下載檔案 環境 VS2015 程式碼: #include <iostream> #include <

TCP伺服器下載檔案 - python程式碼

import socket def send_file_2_client(client_socket, client_addr): # 接收下載檔名 file_name = client_soc

python爬蟲實戰:利用scrapy,短短50行程式碼下載整站短視訊

近日,有朋友向我求助一件小事兒,他在一個短視訊app上看到一個好玩兒的段子,想下載下來,可死活找不到下載的方法。這忙我得幫,少不得就抓包分析了一下這個app,找到了視訊的下載連結,幫他解決了這個小問題。 因為這個事兒,勾起了我另一個念頭,這不最近一直想把python爬蟲方面的知識梳理梳理嗎,乾脆藉機行事,正湊

Python示例程式碼之sftp上傳下載檔案

            sftp的上傳下載是最為常見的功能之一,實現也很簡單,網上資料很多,但為了Python知識點的完整性,還是再描述了一遍。       通常我們使用paramiko庫實現sft

jersey上傳下載檔案及客戶端呼叫程式碼

基礎環境就不說了, 直接上程式碼: 服務方程式碼: //上轉 @POST @Path("Upload") public String postBytes( final byte[

java+jsp程式碼實現從FTP伺服器上傳下載檔案

首先宣告一下。jsp從ftp伺服器上面下載檔案,有兩種方法1.直接給出檔案的地址 2.將檔案作為位元組流返回給瀏覽器 一 、先說第一種吧(這種發放很簡單)。 1.直接使用一個超連結:<a href='ftp://FTP使用者名稱:密碼@IP地址:埠號+ 後面是路徑 (

微信小程式彈出loading層的兩種方法:直接在程式碼裡控制,在wxml檔案里布局彈窗loading層,利用條件渲染,在js程式碼裡控制是否顯示loading層。

微信小程式彈出loading層的兩種方法:直接在程式碼裡控制,在wxml檔案里布局彈窗loading層,利用條件渲染,在js程式碼裡控制是否顯示loading層。  直接在程式碼裡控制 js程式碼 showLoading:function(){ wx.showToast({

windows7下java程式碼從遠端hadoop服務上下載檔案

1. 在windows7下無法下載遠端hdfs服務上的檔案 1. 問題原因 hadoop官方不支援windows平臺,沒有windows版本的hadoop,想在windows上執行hadoop

利用asn1c強ASN檔案生成C程式碼

1,從http://lionet.info/asn1c/download.html 下載 asn1c-0.9.21.exe (Windows環境),安裝(假設安裝在F:\Program Files\asn1c); 2,確定將要編譯的asn檔案目錄(假設為F:\Program

利用Velocity自動生成自定義程式碼_java版_原始碼下載

Velocity很多企業都要求要會,其實也不難,重要的是練過啊,實踐出真知。對於有多年開發經驗的人而言其實是比較簡單的,但是卻有可能在實際開發中從來沒用過,我就是其中之一。此篇部落格借鑑程式設計師的Velocity經驗來加以學習。 專案結構: 執行效果:你可能會看到專案