📄 downfilesplitter.java
字号:
package multidownload;
import javax.swing.JTextArea;
import java.net.*;
import java.io.*;
public class DownFileSplitter extends Thread
{
String dlURL;
long startPos;
long endPos;
int threadID;
JTextArea textArea=new JTextArea();
boolean done=false;
boolean stop=false;
RandomAccessFile file;
public DownFileSplitter(String dlURL,String saveAs,long nStart,long nEnd,
int id,JTextArea textArea) throws IOException
{
this.dlURL=dlURL;
this.startPos=nStart;
this.endPos=nEnd;
this.threadID=id;
this.textArea=textArea;
file=new RandomAccessFile(saveAs,"rw");
file.seek(startPos);
}
public void run()
{
try
{
URL url=new URL(dlURL);
HttpURLConnection httpConnection=(HttpURLConnection)url.openConnection();
String sProperty="bytes="+startPos+"-";
httpConnection.setRequestProperty("RANGE",sProperty);
System.out.println("线程"+threadID+"下载文件、、、请等待");
textArea.append("\n 线程"+threadID+"下载文件、、、请等待");
InputStream input=httpConnection.getInputStream();
byte[] buf=new byte[1024];
int offset;
offset=(int)endPos-(int)startPos;
if(offset>1024)
offset=1024;
while(input.read(buf,0,offset)>0 && startPos<endPos)
{
offset = (int) endPos - (int) startPos;
if (offset > 1024)
offset = 1024;
System.out.println("threadID: "+threadID+" started: "+startPos+" offset: "+offset);
file.write(buf,0,offset);
startPos+=offset;
}
System.out.println("线程"+threadID+"下载完毕!!");
textArea.append("\n 线程"+threadID+"下载完毕!!");
file.close();
input.close();
done=true;
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -