【android】下载文件至本应用程序的file目录或者sdcard

来源:互联网 发布:access执行sql语句 编辑:程序博客网 时间:2024/05/22 14:22


一、判断是否有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();}}



1 0
原创粉丝点击