搜索
当前位置: 三分彩网站 > 断点续传 >

java 断点续传

gecimao 发表于 2019-08-08 20:55 | 查看: | 回复:

  在做断点续传,在传一个文件的时候首先检查是否是上次传输没完成的文件,如果是,从日志文件中读出上次已发送的字节数n,然后怎么在文件中重新定位要开始发送的字节位,f.skip(n)对吗...

  在做断点续传,在传一个文件的时候首先检查是否是上次传输没完成的文件,如果是,从日志文件中读出上次已发送的字节数n,然后怎么在文件中重新定位要开始发送的字节位,f.skip(n) 对吗? skip()之后再f.read(buf)就是从文件中读n个字节之后的数据了吗?求解!

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  假设A给B传文件F(1024字节)。第一次B接收了512字节,那么第二次连接A就应该从513字节开始传输。

  也就是说,在第二次传输时,B要提供“我要从513字节开始传送文件F”的信息,然后A使用FileInputStream构建输入流读取本地文件,使用skip(512)方法跳过文件F的前512字节再传送文件,之后B将数据追加(append)到先前接收的文件末尾即可。

  进一步考虑,如果要实现多线程传送,即分块传输,也同样的道理。假如B要求分作两块同时传输,那么A启动两个线字节),第二个线字节即可。

  如果你要从网络上下载文件,就是说A方不是你实现的,那么你要先确认A方支不支持断电续传功能(HTTP1.1),然后你查阅下HTTP1.1协议,在HTTP1.1版本里,可以通过设置请求包头某个字段的信息(使用URLConnection创建连接并使用setRequestProperty(String key, String value) 方法设置)从而精确读取文件的某一段数据的。注意,基于HTTP断点续传的关键是1.1版本,1.0版本是不支持的。

本文链接:http://dogayoga.net/duandianxuchuan/935.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部