欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java断点续传原理总结

程序员文章站 2022-04-10 22:33:45
...

断点续传总结

断点续传的原理:

断点续传的原理很简单,就是在HTTP请求上和一般下载有所不同而已,所谓断点续传,也就是要从文件已经下载的地方开始继续下载。所以在客户端浏览器传给 Web 服务器的时候要多加一条信息 -- 从哪里开始下载。

 

断点续传的内核:

<!--[if !supportLists]-->1)  1使用net包中提供下载设置断点续传的开始位置

HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();


httpConnection.setRequestProperty("RANGE","bytes=2000070");

 

<!--[if !supportLists]-->2)  2保存文件采用可保存记录的RandomAccessFile,这样就可以用seek()方法访问记录并读取。

RandomAccess oSavedFile = new RandomAccessFile("down.zip","rw"); 
long nPos = 2000070;
// 定位文件指针到 nPos 位置 

oSavedFile.seek(nPos);

 

断点续传的实现:

<!--[if !supportLists]-->1)  1通过远程url和本地保存目录开始运行

<!--[if !supportLists]-->2)  2通过远程url获取文件大小

<!--[if !supportLists]-->3)  3通过本地临时文件info和远程文件比较大小判断是否有本地文件下载完毕

<!--[if !supportLists]-->4)  4未下载完成的开始断点下载

<!--[if !supportLists]-->5)  5完成后删除临时文件

<!--[if !supportLists]-->6)  <!--[endif]-->流程图如下

java断点续传原理总结
            
    
    博客分类: JAVA 乔乐共享断点续传java 

 

断点续传注意点:

1)判断是否下载完成,需要首先和临时文件下载到的位置和临时文件下载的总长度对比

2)在已下载的的前提下,下次下载需先读取到下载的位置,从当前位置继续下载

3)在操作数据流的时候,读取完毕记得关闭数据流。连接用完也要关闭,避免线程继续运行,导致操作文件失败的情况。

4)在重命名文件失败的情况,可换另一种方式,先复制出新文件,在删除老文件。


<!--[endif]-->

 

 

  • java断点续传原理总结
            
    
    博客分类: JAVA 乔乐共享断点续传java 
  • 大小: 33.4 KB