重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章为大家展示了Android应用中实现文件下载的方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
成都创新互联凭借在网站建设、网站推广领域领先的技术能力和多年的行业经验,为客户提供超值的营销型网站建设服务,我们始终认为:好的营销型网站就是好的业务员。我们已成功为企业单位、个人等客户提供了成都做网站、网站制作服务,以良好的商业信誉,完善的服务及深厚的技术力量处于同行领先地位。一、自己封装URLConnection 连接请求类
public void downloadFile1() { try{ //下载路径,如果路径无效了,可换成你的下载路径 String url = "http://c.qijingonline.com/test.mkv"; String path = Environment.getExternalStorageDirectory().getAbsolutePath(); final long startTime = System.currentTimeMillis(); Log.i("DOWNLOAD","startTime="+startTime); //下载函数 String filename=url.substring(url.lastIndexOf("/") + 1); //获取文件名 URL myURL = new URL(url); URLConnection conn = myURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); int fileSize = conn.getContentLength();//根据响应获取文件大小 if (fileSize <= 0) throw new RuntimeException("无法获知文件大小 "); if (is == null) throw new RuntimeException("stream is null"); File file1 = new File(path); if(!file1.exists()){ file1.mkdirs(); } //把数据存入路径+文件名 FileOutputStream fos = new FileOutputStream(path+"/"+filename); byte buf[] = new byte[1024]; int downLoadFileSize = 0; do{ //循环读取 int numread = is.read(buf); if (numread == -1) { break; } fos.write(buf, 0, numread); downLoadFileSize += numread; //更新进度条 } while (true); Log.i("DOWNLOAD","download success"); Log.i("DOWNLOAD","totalTime="+ (System.currentTimeMillis() - startTime)); is.close(); } catch (Exception ex) { Log.e("DOWNLOAD", "error: " + ex.getMessage(), ex); } }