文件下载工具类

来源:互联网 发布:杭电网络攻防平台 编辑:程序博客网 时间:2024/05/20 04:12
import android.os.AsyncTask;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;public class MyDownAsync extends AsyncTask<String,Integer,byte[]> {    private File file;    private FreedomCallback freedomCallback;    public MyDownAsync(File file,FreedomCallback freedomCallback) {        this.file = file;        this.freedomCallback=freedomCallback;    }    @Override    protected byte[] doInBackground(String... params) {        if(params[0]!=null){           saveFileFromURL(params[0],file);        }        return null;    }    @Override    protected void onPostExecute( byte[] result) {         freedomCallback.finished(result);        super.onPostExecute(result);    }    public static boolean saveFileFromURL(String url, File destFile) {        HttpURLConnection httpConn = null;        BufferedInputStream bis = null;        BufferedOutputStream bos = null;        try {            bos = new BufferedOutputStream(new FileOutputStream(destFile));            URL urlObj = new URL(url);            httpConn = (HttpURLConnection) urlObj.openConnection();            httpConn.setRequestMethod("GET");            httpConn.setDoInput(true);            httpConn.setConnectTimeout(100000);            httpConn.connect();            if (httpConn.getResponseCode() == 200) {                bis = new BufferedInputStream(httpConn.getInputStream());                int c = 0;                byte[] buffer = new byte[8 * 1024];                while ((c = bis.read(buffer)) != -1) {                    bos.write(buffer, 0, c);                    bos.flush();                }            }            return true;        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                if (bis != null) {                    bis.close();                }                if (bos != null) {                    bos.close();                }                httpConn.disconnect();            } catch (IOException e) {                e.printStackTrace();            }        }        return false;    }    public interface FreedomCallback {         void finished(byte[] result);    }}
File file=new File(mDownloadDir+"/"+"hello.js"); new MyDownAsync(file, new MyDownAsync.FreedomCallback() {     @Override     public void finished(byte[] result) {             } }).execute(url);

0 0
原创粉丝点击