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();
    }
    }



  • 相关阅读:
    站内信设计
    python 发送邮件例子
    mysql 索引相关知识
    一、mysql分表简单介绍
    redis 学习笔记三(队列功能)
    redis 学习笔记二 (简单动态字符串)
    redis 学习笔记一
    docker部署asp.net core
    win10安装docker
    页面格式化后台的传过来的
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3908015.html
Copyright © 2011-2022 走看看