资源简介

功能介绍: 1、基本下载功能; 2、支持多任务多线程同时下载; 3、线程数由用户在新建任务时设定(若大于线程数20则默认为20); 4、下载过程中可以暂停,点击开始可以继续下载; 5、点击菜单栏“任务——退出程序”正常退出,可以保存当前未下载完成的任务,等待下次继续下载(建议先暂停所有任务再退出程序,以免丢失信息!); 6、点击“打开”可以查看之前未下载完成的任务,继续下载; 7、可以删除任务,若任务在运行则提示暂停后再操作,若任务已经完成可以选择是否和已下载的文件一同删除; 8、在下载过程中,可以点击“线程+”或“线程-”即时增减线程,但是线程数必须大于等于1且小于等于20; 9、“下载分块图示”用于显示下载过程的分块信息,及相关块的完成情况(灰色为未下载,绿色为下载中,蓝色为完成); …… 注:每次运行程序就会自动创建F:/myDownloader/taskManager_2文件夹,用于保存文件下载的部分信息……

资源截图

代码片段和文件信息

package hn.download;

import hn.manager.DownLoadManager;
import hn.manager.DownloadUtil;
import hn.manager.TaskManager;
import hn.model.FileInformation;
import hn.model.Piece;

import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JOptionPane;

public class DownloadReady implements RunnableSerializable{

private static final long serialVersionUID = 1L;

public static final int STATE_NEW = 1;

public static final int STATE_RUNNING = 2;

public static final int STATE_COMPLETED = 3;

public static final int STATE_PAUSED = 4;

public static final int  STATE_FAILED = 5;

public static final int THREAD_MAX = 20;

public   int status;
private  String urlString;
private  String fileLocation;
private  String file;

private String realFileName;
private String filePostfix;
private  String fileName;

private  int threadSum;
private  int fileSize;
private   MyThread[] mts;
private PieceManager pm;
private  long startTime;
private  URL downloadURL;
private  SimpleDateFormat formatter;
private  String downloadProgress;
private  String downloadSpeed;
private  long useTime;
private long useTime0;
private  FileInformation fileInformation;
private  long dledFileSize;


private Piece[] pieces;
public static final int PIECEAMOUNT = 20;
public static final int PIECE_LEISURE = 0;
public static final int PIECE_BUSY = 1;
public static final int PIECE_COMPLETE = 2;


public DownloadReady(String urlString int threadSum0 String locationString fileName)
throws IOException {
this.urlString = urlString;
downloadURL = new URL(urlString);// 获得数据地址
threadSum = threadSum0;
fileLocation = location;
URLConnection urlConnection = downloadURL.openConnection();// 打开连接
urlConnection.connect();
fileSize = urlConnection.getContentLength();// 取得文件长度
if (fileSize == -1) {
fileSize = Integer.MAX_VALUE;// 若长度取不到(未知)给予int最大值
}
realFileName = downloadURL.getFile(); // 取得文件路径
filePostfix = realFileName.split(“\\.“)[realFileName.split(“\\.“).length - 1];
this.fileName = fileName + “.“ +filePostfix;
startTime = System.currentTimeMillis();
formatter = new SimpleDateFormat(“h:mm:ss a‘ / ‘yyyy-MM-dd“);// 时间格式
file = fileLocation + this.fileName;
status = STATE_NEW;
downloadProgress = “0“;
downloadSpeed = “0k/s“;
useTime = 0;
useTime0 = 0;
getMessages();
mts = new MyThread[THREAD_MAX];
}

public FileInformation getMessages(){
fileInformation = new FileInformation();
fileInformation.setStatus(status);
fileInformation.setFileName(fileName);
fileInformation.setFileSize(fileSize);
fileInformation.setDledFileSize((int)dledFileSize);
fileInformation.setDownloadProgress(downloadP

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

     文件       1413  2009-04-10 19:42  _myDownloader\images\imgContinueTask.jpg

     文件       3895  2009-04-10 19:42  _myDownloader\images\imgDeleteTask.JPG

     文件       1343  2009-04-10 19:42  _myDownloader\images\imgNewTask.jpg

     文件       1348  2009-04-10 19:42  _myDownloader\images\imgPauseTask.jpg

     文件       1499  2009-04-10 19:49  _myDownloader\images\imgPreviousTask.jpg

    ..A.SH.      7680  2009-04-11 13:31  _myDownloader\images\Thumbs.db

     文件      60563  2009-04-12 13:20  _myDownloader\myDownloader.jar

     文件        383  2009-04-11 13:40  _myDownloader\myDowloader\.project

     文件        232  2009-04-11 13:40  _myDownloader\myDowloader\.classpath

     文件       1413  2009-04-11 13:40  _myDownloader\myDowloader\images\imgContinueTask.jpg

     文件       3895  2009-04-11 13:40  _myDownloader\myDowloader\images\imgDeleteTask.JPG

     文件       1343  2009-04-11 13:40  _myDownloader\myDowloader\images\imgNewTask.jpg

     文件       1348  2009-04-11 13:40  _myDownloader\myDowloader\images\imgPauseTask.jpg

     文件       1499  2009-04-11 13:40  _myDownloader\myDowloader\images\imgPreviousTask.jpg

     文件      17920  2009-04-11 13:40  _myDownloader\myDowloader\images\Thumbs.db

     文件       3922  2009-04-11 14:18  _myDownloader\myDowloader\bin\hn\download\MyThread.class

     文件        561  2009-04-11 08:40  _myDownloader\myDowloader\bin\hn\download\Main.class

     文件       1422  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\download\FileAccess.class

     文件       7769  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\download\DownloadReady.class

     文件       3244  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\download\DownloadReady$InnerThread.class

     文件       1154  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\download\PieceManager.class

     文件       3443  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\manager\TaskManager.class

     文件       4371  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\manager\DownloadUtil.class

     文件      24678  2009-04-12 13:16  _myDownloader\myDowloader\bin\hn\manager\DownLoadManager.class

     文件       1029  2009-04-12 13:16  _myDownloader\myDowloader\bin\hn\manager\DownLoadManager$1.class

     文件       1604  2009-04-12 13:16  _myDownloader\myDowloader\bin\hn\manager\DownLoadManager$2.class

     文件       1473  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\model\MyTableModel.class

     文件       2548  2009-04-11 08:40  _myDownloader\myDowloader\bin\hn\model\MyTableColumnModel.class

     文件       2669  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\model\FileInformation.class

     文件       1963  2009-04-11 13:40  _myDownloader\myDowloader\bin\hn\model\ProgressRenderer.class

............此处省略42个文件信息

评论

共有 条评论