⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filesplitterfetch.java

📁 http 多线程断点下载 http 多线程断点下载
💻 JAVA
字号:
package httpdrowload.file;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class FileSplitterFetch extends Thread {
	String      sURL;               //File URL
	long        nStartPos;          //File Snippet Start Position
	long        nEndPos;            //File Snippet End Position
	int         nThreadID;          //Thread's ID
	boolean     bDownOver = false;  //Downing is over
	boolean     bStop     = false;  //Stop identical
	FileAccessI fileAccessI = null; //File Access interface

	public FileSplitterFetch(String sURL,
							 String sName,
							 long nStart,
							 long nEnd,
							 int id) throws IOException
	{
		this.sURL      = sURL;
		this.nStartPos = nStart;
		this.nEndPos   = nEnd;
		nThreadID      = id;
		fileAccessI    = new FileAccessI(sName,nStartPos);
	}

	public void run()
	{
		while(nStartPos < nEndPos && !bStop)
		{
			try{
				URL url = new URL(sURL);
				HttpURLConnection httpConnection = (HttpURLConnection)url.openConnection();
				String sProperty = "bytes=" + nStartPos + "-";
				httpConnection.setRequestProperty("RANGE",sProperty);
				Utility.log(sProperty);
				InputStream input = httpConnection.getInputStream();

				byte[] b = new byte[1024];
				int nRead =input.read(b);
				while(nRead > 0 && nStartPos < nEndPos && !bStop)
				{
					nStartPos += fileAccessI.write(b,0,nRead);
					nRead = input.read(b);
				}
			
				Utility.log("Thread " + nThreadID + " is over!");
				
				httpConnection.disconnect();
				bDownOver = true;
			}
			catch(Exception e){
				e.printStackTrace ();
			}
		}
	}

	//打印回应的头信息
	public void logResponseHead(HttpURLConnection con)
	{
		for(int i=1;;i++){
			String header=con.getHeaderFieldKey(i);
			if(header!=null)
				Utility.log(header+" : "+con.getHeaderField(header));
			else
				break;
		}
	}

	public void splitterStop()
	{
		bStop = true;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -