資源簡(jiǎn)介
功能介紹:
1、基本下載功能;
2、支持多任務(wù)多線程同時(shí)下載;
3、線程數(shù)由用戶在新建任務(wù)時(shí)設(shè)定(若大于線程數(shù)20則默認(rèn)為20);
4、下載過程中可以暫停,點(diǎn)擊開始可以繼續(xù)下載;
5、點(diǎn)擊菜單欄“任務(wù)——退出程序”正常退出,可以保存當(dāng)前未下載完成的任務(wù),等待下次繼續(xù)下載(建議先暫停所有任務(wù)再退出程序,以免丟失信息!);
6、點(diǎn)擊“打開”可以查看之前未下載完成的任務(wù),繼續(xù)下載;
7、可以刪除任務(wù),若任務(wù)在運(yùn)行則提示暫停后再操作,若任務(wù)已經(jīng)完成可以選擇是否和已下載的文件一同刪除;
8、在下載過程中,可以點(diǎn)擊“線程+”或“線程-”即時(shí)增減線程,但是線程數(shù)必須大于等于1且小于等于20;
9、“下載分塊圖示”用于顯示下載過程的分塊信息,及相關(guān)塊的完成情況(灰色為未下載,綠色為下載中,藍(lán)色為完成);
……
注:每次運(yùn)行程序就會(huì)自動(dòng)創(chuàng)建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);//?獲得數(shù)據(jù)地址
threadSum?=?threadSum0;
fileLocation?=?location;
URLConnection?urlConnection?=?downloadURL.openConnection();//?打開連接
urlConnection.connect();
fileSize?=?urlConnection.getContentLength();//?取得文件長(zhǎng)度
if?(fileSize?==?-1)?{
fileSize?=?Integer.MAX_VALUE;//?若長(zhǎng)度取不到(未知)給予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“);//?時(shí)間格式
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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個(gè)文件信息
評(píng)論
共有 條評(píng)論