亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sitefilefetch.java

?? http 多線程斷點下載 http 多線程斷點下載
?? JAVA
字號:
package httpdrowload.file;

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.HttpURLConnection;
import java.net.URL;


public class SiteFileFetch extends Thread {
	
	long[]              nStartPos;         //開始位置
	long[]              nEndPos;           //結束位置
	FileSplitterFetch[] fileSplitterFetch; //子線程對象
	long                nFileLength;       //文件長
	File                tmpFile;           //文件下載的臨時信息
	DataOutputStream    output;            //輸出到文件的輸出流
	SiteInfoBean siteInfoBean = null;      //文件信息Bean
	boolean      bFirst       = true;      //是否第一次取文件
	boolean      bStop        = false;     //停止標志
	
	public SiteFileFetch(SiteInfoBean bean) throws IOException{
		siteInfoBean = bean;
		tmpFile = new File(siteInfoBean.getSFilePath() +
						   File.separator + 
						   siteInfoBean.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.println("File Length is not known!");
				}
				else if(nFileLength == -2)
				{
					System.err.println("File is not access!");
				}
				else
				{
					for(int i=0;i < siteInfoBean.getNSplitter();i++ ){
						nStartPos[i] = (long)(i*(nFileLength/nStartPos.length));
					}
					for(int i=0;i < siteInfoBean.getNSplitter() - 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(), 
															 nStartPos[i],
															 nEndPos[i],
															 i);
				Utility.log("Thread " + i + " , nStartPos = " + 
							nStartPos[i] + 
							", nEndPos = " + 
							nEndPos[i]);
				fileSplitterFetch[i].start();
			}
			
			//等待子線程結束
			//int count = 0;
			//是否結束while循環
			boolean breakWhile = false;
		
			while(!bStop)
			{
				write_nPos();
				Utility.sleep(100);
				breakWhile = true;
			
				for(int i=0;i<nStartPos.length;i++) {
					if(!fileSplitterFetch[i].bDownOver)
					{
						breakWhile = false;
						break;
					}
				}
				if(breakWhile)
					break;
			}
			System.err.println("文件下載結束!");
		}
			catch(Exception e){e.printStackTrace ();
		}
	}

	//獲得文件長度
	public long getFileSize()
	{
		long nFileLength = -1;
		HttpURLConnection httpConnection = null;
		
		try{
			URL url = new URL(siteInfoBean.getSSiteURL());
			httpConnection = (HttpURLConnection)url.openConnection();
			httpConnection.connect();
				
			int responseCode = httpConnection.getResponseCode();
			if(responseCode>=400)
			{
				processErrorCode(responseCode);
				return -2;
			}
			
			nFileLength = Long.parseLong(httpConnection.getHeaderField("Content-Length"));

		}
		catch(IOException e){
			e.printStackTrace ();
			httpConnection.disconnect();
			System.exit(0);
		}catch(Exception e){
			e.printStackTrace ();
			httpConnection.disconnect();
			System.exit(0);
		}
		
		Utility.log(nFileLength);
		httpConnection.disconnect();
		return nFileLength;
	}

	//保存下載信息(文件指針位置)
	private void write_nPos()
	{
		try{
			output = new DataOutputStream(new FileOutputStream(tmpFile));
			output.writeInt(nStartPos.length);
			for(int i=0;i < siteInfoBean.getNSplitter();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 = 0; i < nCount; 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=0;i < nStartPos.length ;i++ )
			fileSplitterFetch[i].splitterStop();

	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久午夜老司机| 欧美成人猛片aaaaaaa| 国产成人亚洲综合a∨猫咪| 九九久久精品视频| 精品一区二区三区免费视频| 美日韩一区二区| 久久国产综合精品| 国产一区二区三区四区五区入口| 黑人精品欧美一区二区蜜桃| 国产成人8x视频一区二区| 成人一区二区三区视频在线观看| 国产成人精品三级| 99久久综合99久久综合网站| 91亚洲午夜精品久久久久久| 欧美色图一区二区三区| 91精品蜜臀在线一区尤物| 26uuu国产电影一区二区| 中文字幕不卡在线播放| 一区二区三区精品久久久| 日韩在线卡一卡二| 国产在线看一区| 91丨porny丨蝌蚪视频| 欧美三日本三级三级在线播放| 欧美一级久久久| 中文字幕av在线一区二区三区| 一区二区三区丝袜| 精品一区免费av| 91美女在线观看| 日韩精品一区二区三区视频| 国产精品萝li| 日本成人在线网站| 粉嫩av一区二区三区粉嫩| 欧美三级在线视频| 久久久久久电影| 性久久久久久久| 成人免费毛片aaaaa**| 67194成人在线观看| 中文字幕av资源一区| 美女脱光内衣内裤视频久久网站 | 7777精品伊人久久久大香线蕉的| 久久色视频免费观看| 一区二区三区精品在线| 国产一区二区在线视频| 欧美吻胸吃奶大尺度电影| 国产色一区二区| 蜜臀国产一区二区三区在线播放| eeuss国产一区二区三区| 日韩精品一区二区三区视频播放| 亚洲美女精品一区| 成人丝袜视频网| 欧美tickling挠脚心丨vk| 午夜电影一区二区三区| 色婷婷亚洲一区二区三区| 国产欧美一区二区精品性色| 日韩中文字幕av电影| 欧美日韩一区成人| 一区二区三区欧美| 97国产精品videossex| 国产日本亚洲高清| 国产精品18久久久久久久久 | 免费观看日韩电影| 欧美自拍偷拍一区| 亚洲日韩欧美一区二区在线| 国产精品中文有码| 久久精品亚洲麻豆av一区二区| 日本成人在线看| 日韩欧美一级在线播放| 偷拍与自拍一区| 欧美一区二区三区日韩视频| 亚洲综合成人在线视频| 欧美在线视频不卡| 亚洲h在线观看| 欧美精品第1页| 免费不卡在线视频| 欧美精品一区二区在线观看| 另类小说综合欧美亚洲| 欧美xxxx在线观看| 狠狠色丁香九九婷婷综合五月| 26uuu另类欧美亚洲曰本| 国产中文一区二区三区| 久久久久国产精品麻豆ai换脸 | 91一区一区三区| 国产精品美女久久久久久久久久久 | 夜夜嗨av一区二区三区四季av | 中文字幕日韩一区二区| 波多野结衣中文字幕一区| 亚洲欧洲av在线| 色综合久久中文字幕综合网 | 国产欧美一区二区精品性色| 国产成人精品综合在线观看 | 欧美日韩中文另类| 五月天一区二区| 精品国产91亚洲一区二区三区婷婷| 精品一区二区三区在线观看国产| 久久久不卡网国产精品二区| 99久久99久久久精品齐齐| 性做久久久久久免费观看| 精品成人佐山爱一区二区| 成人免费福利片| 亚洲高清在线视频| 精品国产123| 色94色欧美sute亚洲线路一久| 天堂va蜜桃一区二区三区漫画版| 国产三级精品视频| 91色乱码一区二区三区| 日本中文字幕一区二区有限公司| 久久久精品国产免费观看同学| 91丝袜美腿高跟国产极品老师| 五月天激情综合网| 日本一二三不卡| 欧美精品久久一区二区三区| 国产成人8x视频一区二区| 日韩电影免费一区| 亚洲免费在线视频一区 二区| 日韩片之四级片| 色乱码一区二区三区88| 久久99精品一区二区三区| 日韩美女视频19| 久久免费看少妇高潮| 欧美无乱码久久久免费午夜一区| 国产99精品视频| 免费观看一级特黄欧美大片| 亚洲精品高清在线| 国产精品区一区二区三区| 日韩免费在线观看| 欧美精品粉嫩高潮一区二区| 99久久精品免费观看| 国产suv精品一区二区三区| 日本女优在线视频一区二区| 亚洲精品中文字幕乱码三区| 国产欧美综合色| 欧美不卡一区二区| 欧美日韩美少妇| 色成人在线视频| 99精品黄色片免费大全| 床上的激情91.| 国产成人亚洲综合色影视| 久久国产视频网| 久久国产尿小便嘘嘘| 天天爽夜夜爽夜夜爽精品视频| 中文字幕视频一区| 国产精品免费人成网站| 中文字幕精品一区二区精品绿巨人| 日韩视频在线一区二区| 日韩欧美专区在线| 日韩美女天天操| 精品久久人人做人人爰| 欧美成人r级一区二区三区| 欧美日本在线播放| 欧美精品国产精品| 欧美一区二区三区爱爱| 日韩你懂的在线播放| 精品国产一区二区三区四区四 | 成人不卡免费av| 99久久免费视频.com| 99久久亚洲一区二区三区青草 | 性做久久久久久久免费看| 丝袜诱惑制服诱惑色一区在线观看| 亚洲成人av一区| 欧美a级理论片| 国产乱对白刺激视频不卡| 国产91精品一区二区麻豆亚洲| 国产91丝袜在线播放0| 一本一道综合狠狠老| 欧美艳星brazzers| 日韩欧美二区三区| 亚洲国产精品成人综合 | 精品伦理精品一区| 久久夜色精品国产噜噜av| 亚洲国产精品二十页| 一区二区三区四区不卡视频| 日韩精品三区四区| 国产高清久久久| fc2成人免费人成在线观看播放| 欧美专区日韩专区| 日韩网站在线看片你懂的| 国产天堂亚洲国产碰碰| 亚洲黄色小说网站| 久久不见久久见免费视频1| aa级大片欧美| 欧美va日韩va| 亚洲综合免费观看高清完整版| 麻豆专区一区二区三区四区五区| 粉嫩av亚洲一区二区图片| 91女厕偷拍女厕偷拍高清| 欧美一区二区在线看| 国产精品毛片a∨一区二区三区| 肉丝袜脚交视频一区二区| 国产乱码精品一品二品| 99久久精品一区| 精品国产91亚洲一区二区三区婷婷| 国产精品久久久久精k8| 久久精品国产网站| 色香蕉久久蜜桃| 国产日韩欧美综合在线| 日本中文字幕一区| 色94色欧美sute亚洲13| 精品国产乱码久久久久久蜜臀 | 老司机精品视频在线| 91同城在线观看|