所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给
wen
服务器的时候要多加一条信息即:从哪里开始的问题。
假设:我们从服务器下载一个文件,需要从 2000070
这个字节后开始下载,之前已经下载过了,注意查看以下代码:
1 | get /down.zip http/1.0 |
服务器收到这条信息,就开始返回信息:
1 | 206 //注意此时服务器的返回码不再是200而是206 |
以上差不多就是断点续传需要知道的知识和大致的原理。
问题
用什么方法实现提交
range:bytes=2000070-
?
使用最原始的
socket
肯定可以完成,不过很费事,用java的net包中提供了设置的方法,如下:
1 | try { |
接下来:获取到流了,那么如何从流保存到文件中去呢?
保存文件的方法,采用的是 io
包中的 randomacessfile
类。如下代码:
1 | //上面文件已经获取到 inputStream--input |
基本大概就是这样。