我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:天空彩票 > 断点续传 >

java 断点续传

归档日期:07-13       文本归类:断点续传      文章编辑:爱尚语录

  在做断点续传,在传一个文件的时候首先检查是否是上次传输没完成的文件,如果是,从日志文件中读出上次已发送的字节数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://diverlandya.com/duandianxuchuan/804.html