• 大小: 27KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: Java
  • 标签:

资源简介

java实现支持Http断点续传,下载过程可暂停,同时支持Ftp下载。

资源截图

代码片段和文件信息

/**
 * 文件名:ControlFileFetch.java
 * 创建人:张文娅
 * 日期:2010年7月18日
 * 描述:主线程,用于控制流程以及子线程
 * 参考资料:《JAVA编程思想》
 *      《JAVA范例大全》
 * 参考链接:http://202.194.127.1/dxjc/wlcxsj/JDK_API_1_6/overview-summary.html
 *  
 */
package com;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;


public class ControlFileFetch extends Thread{ //控制主线程
private TranBean tranBean = null; //保存传输文件信息
private long[] startPosition;
private long[] endPosition;
private FileFetch[] childThread; //子线程
private long fileLength;
private boolean isFirstGet = true;
private boolean isStopGet = false;
public boolean downloadOver = false;
private File fileTemp; //下载临时信息文件
private File file; //本地文件
protected boolean fileExist = false;
private DataOutputStream output;


public ControlFileFetch (TranBean tranBean) throws IOException {
this.tranBean = tranBean;
fileTemp = new File(tranBean.getFileDir()  + tranBean.getFileName() +“.tmp“);
file = new File(tranBean.getFileDir() + tranBean.getFileName());

if(file.exists()&&!fileTemp.exists()){ //由于每次下载全部结束会删掉临时文件
isStopGet = true; //如果本地文件存在,而临时文件不存在,则直接return
fileExist = true;
DownLoader.display(“文件“+tranBean.getFileName()+“已存在“);
return;
}

if(fileTemp.exists()){ //临时文件存在,则曾经下载过,但下载没有完成
isFirstGet = false;
readInfo(); //读取临时文件信息,获得各子线程开始结束位置
}else {
startPosition = new long[tranBean.getCount()];
endPosition = new long[tranBean.getCount()];
}
}


public void run(){
try{
if(isFirstGet){ //第一次下载,分配各子线程开始结束位置
fileLength = getFileSize();
DownLoader.display(“文件总长度为“ + fileLength);
if(fileLength == -1){
DownLoader.display(“文件长度未知“);
}
else if(fileLength == -2){
DownLoader.display(“文件不可访问“);
}
else{
for(int i=0 ;i startPosition[i] = (long)(i*(fileLength/startPosition.length));
}
for(int i=0 ;i endPosition[i] = (long)(startPosition[i]+fileLength/endPosition.length);
}
}
}
childThread = new FileFetch[startPosition.length]; //创建子线程

for(int i = 0;i childThread[i] = new FileFetch(tranBean.getWebAddr()tranBean.getFileDir() + tranBean.getFileName()startPosition[i]endPosition[i]i);
DownLoader.display(“线程“+(i+1)+“:开始位置=“+startPosition[i]+“结束位置=“+endPosition[i]);
childThread[i].start(); //启动子线程
}
boolean breakWhile = false;
while (!isStopGet){
savePosition(); //每隔0.5秒,保存下载位置
try{
Thread.sleep(500);
}catch(Exception e){
DownLoader.display(“线程在睡觉啦“);
}
breakWhile = true;
for(int i = 0;i if(!childThread[i].downLoadO

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2010-07-14 19:02  DownLoader\.classpath

     文件        387  2010-07-14 19:02  DownLoader\.project

     文件       4709  2010-07-19 10:30  DownLoader\bin\com\ControlFileFetch.class

     文件       6197  2010-07-19 10:29  DownLoader\bin\com\DownLoader.class

     文件        964  2010-07-19 10:31  DownLoader\bin\com\FileAccess.class

     文件       2369  2010-07-19 10:30  DownLoader\bin\com\FileFetch.class

     文件       5427  2010-07-19 10:30  DownLoader\bin\com\FtpDialog.class

     文件       2932  2010-07-19 10:25  DownLoader\bin\com\FtpMethod.class

     文件        989  2010-07-19 10:21  DownLoader\bin\com\HttpMethod.class

     文件       1333  2010-07-19 10:27  DownLoader\bin\com\TranBean.class

     文件        490  2010-07-19 08:39  DownLoader\readme.txt

     文件       5384  2010-07-19 10:30  DownLoader\src\com\ControlFileFetch.java

     文件       7188  2010-07-19 10:29  DownLoader\src\com\DownLoader.java

     文件       1042  2010-07-19 10:31  DownLoader\src\com\FileAccess.java

     文件       2227  2010-07-19 10:30  DownLoader\src\com\FileFetch.java

     文件       5884  2010-07-19 10:30  DownLoader\src\com\FtpDialog.java

     文件       2617  2010-07-19 10:25  DownLoader\src\com\FtpMethod.java

     文件        849  2010-07-19 10:21  DownLoader\src\com\HttpMethod.java

     文件       1299  2010-07-19 10:27  DownLoader\src\com\TranBean.java

     目录          0  2010-07-19 09:40  DownLoader\bin\com

     目录          0  2010-07-19 09:38  DownLoader\src\com

     目录          0  2010-07-18 16:39  DownLoader\bin

     目录          0  2010-07-14 19:05  DownLoader\src

     目录          0  2010-07-16 09:46  DownLoader

----------- ---------  ---------- -----  ----

                52519                    24


评论

共有 条评论

相关资源