📄 downthread.java
字号:
package download;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class DownThread implements Runnable
{
int startPosition;
int endPosition;
File file;
String url;
MultiDownload down;
int i;
public DownThread(int s,int e,File file,String url,MultiDownload down,int i)
{
startPosition=s;
endPosition=e;
this.url=url;
this.down=down;
this.i=i;
this.file=file;
}
public void run()
{try{
URL Url=new URL(url);
HttpURLConnection conn=(HttpURLConnection)Url.openConnection();
String strValue="bytes="+startPosition+"-";//setResquestPorperty()方法中的参数是固定的格式
conn.setRequestProperty("RANGE", strValue);//设置连接后下载的请求属性,要求该线程在特定的startPosition开始下载
InputStream in=conn.getInputStream();
BufferedInputStream buffer=new BufferedInputStream(in);
byte[] bytes=new byte[1024];
FileOutputStream out=new FileOutputStream(file);
int size=-1;
int count=0;
boolean flag=true;
while(((size=buffer.read(bytes,0,1024))>0)&&flag)
{
if(startPosition+size>=endPosition)
{
size=endPosition-startPosition;
if(size==0)
{flag=false;}
}
out.write(bytes, 0,size);
startPosition+=size;
count+=size;
}
in.close();
out.close();
conn.disconnect();
}catch(MalformedURLException e)
{e.printStackTrace();}
catch(IOException e)
{e.printStackTrace();}
down.isStop[i]=true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -