Java支持断点下载文件

各位大神们,可否在此共享你们的代码,供码农们学习参考一下?
应用市场程序,断点下载apk是必不可少的功能,如何做到断点下载呢?

URL url = new URL("http://f1.market.xiaomi.com/download/AppStore/0279e54e42c95454b29ac9628eccb1bfb5be22aeb/dian.zi.com.zidian.apk");
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setRequestProperty("User-Agent", "NetFox");
httpConnection.setReadTimeout(60000);
//xxx表示你已下载的文件大小
httpConnection.setRequestProperty("RANGE", "bytes=" + xxx + "-");

以上是我在项目中用到关键代码,各位大神们,可否在此共享你们的代码,供码农们学习参考一下?

0

1个回答

以上代码的思路是正确的,首先创建一个和待下载的文件大小一样的空白文件,按照一定大小分块,用RANGE指定分块,下载下来填充到这个空白文件对应的位置上,直到所有的分块都填充,那么就下载完毕了。甚至你可以多线程同时请求多个块。
为了防止程序突然终止,也可以将哪些分块完成哪些没有完成的信息也放在另一个文件上。这就是迅雷下载的时候会生成一个叫xldownload的文件(空白文件)和一个cfg文件(标记哪些下载了,哪些没有下载)
你可以google下,比如用 multi-threading download manager source code 等,可以找到很多完整的源代码

2
yuerliang
A-Liang 想着大家在这里分享下各自经验,一个人学的再多毕竟精力有限。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!