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