知识大全 用Java实现HTTP断点续传功能(2)
Posted 文件
篇首语:世事洞明皆学问,人情练达即文章。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Java实现HTTP断点续传功能(2)相关的知识,希望对你有一定的参考价值。
用Java实现HTTP断点续传功能(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
//启动子线程
fileSplitterFetch = new FileSplitterFetch[nStartPos length];
for(int i= ;i<nStartPos length;i++)
fileSplitterFetch[i] = new FileSplitterFetch(siteInfoBean getSSiteURL()
siteInfoBean getSFilePath() + File separator + siteInfoBean getSFileName()
nStartPos[i] nEndPos[i] i);
Utility log( Thread + i + nStartPos = + nStartPos[i] + nEndPos = + nEndPos[i]);
fileSplitterFetch[i] start();
// fileSplitterFetch[nPos length ] = new FileSplitterFetch(siteInfoBean getSSiteURL()
siteInfoBean getSFilePath() + File separator + siteInfoBean getSFileName() nPos[nPos length ] nFileLength nPos length );
// Utility log( Thread + (nPos length ) + nStartPos = + nPos[nPos length ] +
nEndPos = + nFileLength);
// fileSplitterFetch[nPos length ] start();
//等待子线程结束
//int count = ;
//是否结束while循环
boolean breakWhile = false;
while(!bStop)
write_nPos();
Utility sleep( );
breakWhile = true;
for(int i= ;i<nStartPos length;i++)
if(!fileSplitterFetch[i] bDownOver)
breakWhile = false;
break;
if(breakWhile)
break;
//count++;
//if(count> )
// siteStop();
System err println( 文件下载结束! );
catch(Exception e)e printStackTrace ();
//获得文件长度
public long getFileSize()
int nFileLength = ;
try
URL url = new URL(siteInfoBean getSSiteURL());
HttpURLConnection Connection = (HttpURLConnection)url openConnection ();
( User Agent NetFox );
int responseCode=();
if(responseCode>= )
processErrorCode(responseCode);
return ; // represent access is error
String sHeader;
for(int i= ;;i++)
//DataInputStream in = new DataInputStream( ());
//Utility log(in readLine());
sHeader=(i);
if(sHeader!=null)
if(sHeader equals( Content Length ))
nFileLength = Integer parseInt((sHeader));
break;
else
break;
catch(IOException e)e printStackTrace ();
catch(Exception e)e printStackTrace ();
Utility log(nFileLength);
return nFileLength;
//保存下载信息(文件指针位置)
private void write_nPos()
try
output = new DataOutputStream(new FileOutputStream(tmpFile));
output writeInt(nStartPos length);
for(int i= ;i<nStartPos length;i++)
// output writeLong(nPos[i]);
output writeLong(fileSplitterFetch[i] nStartPos);
output writeLong(fileSplitterFetch[i] nEndPos);
output close();
catch(IOException e)e printStackTrace ();
catch(Exception e)e printStackTrace ();
//读取保存的下载信息(文件指针位置)
private void read_nPos()
try
DataInputStream input = new DataInputStream(new FileInputStream(tmpFile));
int nCount = input readInt();
nStartPos = new long[nCount];
nEndPos = new long[nCount];
for(int i= ;i<nStartPos length;i++)
nStartPos[i] = input readLong();
nEndPos[i] = input readLong();
input close();
catch(IOException e)e printStackTrace ();
catch(Exception e)e printStackTrace ();
private void processErrorCode(int nErrorCode)
System err println( Error Code : + nErrorCode);
//停止文件下载
public void siteStop()
bStop = true;
for(int i= ;i<nStartPos length;i++)
fileSplitterFetch[i] splitterStop();
cha138/Article/program/Java/hx/201311/27070
相关参考
/** *authorannegu *date */ annegu做了一个简单的Http多线程的下载程序来讨论一下多线程并发下载以及断点续传的问题 这个程序的功能就是可以分多个线程从目标
用Java实现断点续传(HTTP) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 断点续传的原理
如何使用.NET实现断点续传功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 顾名思义断点续传
(一)断点续传的原理 其实断点续传的原理很简单就是在Http的请求上和一般的下载有所不同而已 打个比方浏览器请求服务器上的一个文时所发出的请求如下 假设服务器域名为文件名为downzip
使用VisualC#实现断点续传 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
/* **SiteFileFetchjava */ packageNetFox; importjavaio*; import*; publicclassSiteFileFetc
PHP下载远程文件类(支持断点续传) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP下载远
Java网络编程从入门到精通(24):实现HTTP断点续传下载工具(附源代码) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,
在vs中我们可以直接用表达式数值型比较直接用操作符即可 如i==i<; 但是字符型比较呢? 加入我们有一个名为string的变量定义如下: char*string=Two; 设置断
知识大全 QQ传文件的时候突然电脑关机,那么重启后还能续传么
QQ传文件的时候突然电脑关机,那么重启后还能续传么?紧急求救! 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来