国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用Java實現斷點續傳(HTTP)(2)

2019-11-18 13:39:43
字體:
來源:轉載
供稿:網友

  用java實現斷點續傳(HTTP)(2)

(三)斷點續傳內核的實現
主要用了6個類,包括一個測試類。
SiteFileFetch.java負責整個文件的抓取,控制內部線程(FileSplitterFetch類)。
FileSplitterFetch.java負責部分文件的抓取。
Fileaccess.java負責文件的存儲。
SiteInfoBean.java要抓取的文件的信息,如文件保存的目錄,名字,抓取文件的URL等。
Utility.java工具類,放一些簡單的方法。
TestMethod.java測試類。

下面是源程序:

/*
**SiteFileFetch.java
*/
package NetFox;
import java.io.*;
import java.net.*;


public class SiteFileFetch extends Thread {


SiteInfoBean siteInfoBean = null; //文件信息Bean
long[] nStartPos; //開始位置
long[] nEndPos; //結束位置
FileSplitterFetch[] fileSplitterFetch; //子線程對象
long nFileLength; //文件長度
boolean bFirst = true; //是否第一次取文件
boolean bStop = false; //停止標志
File tmpFile; //文件下載的臨時信息
DataOutputStream output; //輸出到文件的輸出流

public SiteFileFetch(SiteInfoBean bean) throws IOException
{
siteInfoBean = bean;
//tmpFile = File.createTempFile ("zhong","1111",new File(bean.getSFilePath()));
tmpFile = new File(bean.getSFilePath()+File.separator + bean.getSFileName()+".info");
if(tmpFile.exists ())
{
bFirst = false;
read_nPos();
}
else
{
nStartPos = new long[bean.getNSplitter()];
nEndPos = new long[bean.getNSplitter()];
}

}

public void run()
{
//獲得文件長度
//分割文件
//實例FileSplitterFetch
//啟動FileSplitterFetch線程
//等待子線程返回
try{
if(bFirst)
{
nFileLength = getFileSize();
if(nFileLength == -1)
{
System.err.}
else if(nFileLength == -2)
{
System.err.println("File is not access!");
}
else
{
for(int i=0;i<nStartPos.length;i++)
{
nStartPos[i] = (long)(i*(nFileLength/nStartPos.length));
}
for(int i=0;i<nEndPos.length-1;i++)
{
nEndPos[i] = nStartPos[i+1];
}
nEndPos[nEndPos.length-1] = nFileLength;
}
}

//啟動子線程
fileSplitterFetch = new FileSplitterFetch[nStartPos.length];
for(int i=0;i<nStartPos.length;i++)
{
fileSplitterFetch[i] = new FileSplitterFetch(siteInfoBean.getSSiteURL(),
siteInfoBean.getSFilePath() + File.separator + siteInfoBean.getSFileName(),


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 得荣县| 惠安县| 滁州市| 涟源市| 建水县| 沙湾县| 玉溪市| 全南县| 马龙县| 贺兰县| 庄河市| 敦化市| 崇左市| 崇义县| 南召县| 高密市| 乌拉特后旗| 宁蒗| 菏泽市| 诸暨市| 昭通市| 尉氏县| 高邑县| 修武县| 乌鲁木齐市| 平利县| 资溪县| 龙岩市| 增城市| 长顺县| 庆阳市| 商丘市| 临城县| 乐昌市| 肃宁县| 易门县| 麟游县| 行唐县| 宁蒗| 德格县| 彰化市|