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



  • 相关阅读:
    Linux常用命令
    Docker常用命令
    Google操作
    JAVA实现动态二维码输出
    JAVA IDEA Debug设置
    JAVA下载https资源图片
    Nginx配置文件常用操作
    Docker安装(Ubuntu、CentOS)
    SpringBoot启动脚本
    Tomcat——tomcat配置文件方式部署项目
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3908015.html
Copyright © 2020-2023  润新知