zoukankan      html  css  js  c++  java
  • 【android】下载文件至本应用程序的file文件夹或者sdcard

    

    一、推断是否有sdcard卡


    //推断是否有SD卡
    //ture:有SD卡
    //false:没有SD卡
    public boolean avaiableMedia(){
        String status=Environment.getExternalStorageState();
             
        if(status.equals(Environment.MEDIA_MOUNTED)){
            return true;
        }
        else {
            return false;
        }
    }


    二、下载文件至sdcard卡


    if(avaiableMedia()){
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(url);
        HttpResponse response;
        try {
            response = client.execute(get);
            HttpEntity entity = response.getEntity();
            long length = entity.getContentLength();
            InputStream is = entity.getContent();
            FileOutputStream fileOutputStream = null;
            if (is != null) {
                File file = new File(Environment.getExternalStorageDirectory(),"test.apk");                         fileOutputStream = new FileOutputStream(file);
                                 
                byte[] buf = new byte[1024];
                int ch = -1;
                int count = 0;
                while ((ch = is.read(buf)) != -1) {
                    fileOutputStream.write(buf, 0, ch);
                    count += ch;
                }
         
            }
            fileOutputStream.flush();
            if (fileOutputStream != null) {
                fileOutputStream.close();
            }
            if (is != null) {
                is.close();
            }  
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    三、下载文件至本应用程序的数据目录

    else{
        try {
        FileOutputStream outStream = this.openFileOutput("test.apk" , Context.MODE_WORLD_READABLE);
                       
        HttpClient client = new DefaultHttpClient();
            HttpGet get = new HttpGet(url);
            HttpResponse response;
                          
            response = client.execute(get);
            HttpEntity entity = response.getEntity();
            long length = entity.getContentLength();
            InputStream is = entity.getContent();
            int count = 0;
            if (is != null) {
                byte[] buf = new byte[1024];
                int ch = -1;
                 
                while ((ch = is.read(buf)) >0) {
                    outStream.write(buf,0,ch);
                    count += ch;
                    Toast.makeText(getApplicationContext(),"正在下载升级包...",Toast.LENGTH_SHORT).show();
            }
        }
                     
            outStream.flush();
            if (outStream != null) {
                outStream.close();
            }
            if (is != null) {
                is.close();
            } 
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    }



  • 相关阅读:
    Codeforces 379 F. New Year Tree
    「NOI2018」屠龙勇士
    「NOI2018」归程
    深入理解Java枚举类型(enum)
    2018.6.9-学习笔记
    String、StringBuffer与StringBuilder介绍
    HashMap和HashTable到底哪不同?
    HashMap详解
    List,Set和Map详解及其区别和他们分别适用的场景
    Java中高级面试题(1)
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3908015.html
Copyright © 2011-2022 走看看