/*
導入Java . io . *;
導入Java . net . *;
導入Java . util . *;
*/
私有HttpURLConnection連接;//存儲連接
private int downsize =-1;//下載文件大小,初始值為-1。
private int downed = 0;//文佳的下載大小,初始值為0。
private random access file save file;//記錄下載信息存儲文件
私有URL文件URL//記錄要下載的文件的地址。
私有DataInputStream文件流;//記錄下載的數據流
嘗試{
/*開始創建下載的存儲文件並初始化值*/
File tempfile object = new File(“h:\ \ webwork-2.1.7 . zip“);
如果(!tempfile object . exists()){
/*如果文件不存在則創建*/
tempfileobject . create new file();
}
save file = new random access file(tempfile object,“rw“);
/*建立連接*/
fileurl =新URL(“/files/documents/693/9723/webwork-2.1.7 . zip“);
connection =(HttpURLConnection)fileurl . open connection();
connection . setrequestproperty(“Range“,“byte =“+this . downed+“-“);
this . downsize = connection . getcontentlength();
//system . out . println(connection . getcontentlength());
新線程(this)。start();
}
捕捉(異常e ){
system . out . println(e . tostring());
System.out.println(“生成器錯誤“);
system . exit(0);
}
公共void運行(){
/*開始下載文件。以下測試將在沒有斷點的情況下繼續進行。下載的文件有問題*/
嘗試{
system . out . println(“begin!);
Date begin time = new Date();
begintime.setTime(新日期()。getTime());
byte【】file byte;
int onecelen
//system . out . println(this . connection . getinputstream()。getClass()。getName());
this . filestream = new data inputstream(
新緩沖區輸入流(
this . connection . getinputstream()));
system . out . println(“size =“+this . downsize);
同時(this.downsize!= this . downed ){
如果(this . downsize-this . down & gt;262144){//設置最大緩存為256KB。
filebyte =新字節【262144】;
onecelen = 262144;
}
否則{
file byte = new byte【this . downsize-this . downed】;
onecelen = this . downsize-this . down;
}
onecelen = this . filestream . read(file byte,0,onecelen);
this . save file . write(file byte,0,one celen);
this . downed+= onecelen;
system . out . println(this . downed);
}
this . save file . close();
system . out . println(“end!);
system . out . println(begin time . gettime());
System.out.println(新日期()。getTime());
system . out . println(begin time . gettime()-新日期()。getTime());
}
捕捉(異常e ){
system . out . println(e . tostring());
系統。out . println(“run()方法有問題!“);
}
}
/***
//FileClient.java
導入Java . io . *;
導入Java . net . *;
公共類文件客戶端{
公共靜態void main(String【】args)引發異常{
//使用本地文件系統接受網絡數據並將其保存為新文件。
File file =新文件(“d:\ \ FMD . doc“);
file . create new file();
RandomAccessFile RAF = new RandomAccessFile(file,“rw“);
//通過Socket連接文件服務器。
Socket server = new Socket(inet address . getlocalhost(),3318);
//創建網絡接受流來接受服務器文件數據
InputStream netIn = server . getinputstream();
InputStream in = new data InputStream(new BufferedInputStream(netIn));
//創建緩沖區來緩沖網絡數據
byte【】buf =新字節【2048】;
int num = in . read(buf);
while(num!=(-1)){//數據都讀完了嗎?
RAF . write(buf,0,num);//將數據寫入文件
RAF . skip bytes(num);//按順序寫入文件字節
num = in . read(buf);//繼續從網絡讀取文件。
}
in . close();
RAF . close();
}
}
//FileServer.java
導入Java . io . *;
導入Java . util . *;
導入Java . net . *;
公共類文件服務器{
公共靜態void main(String【】args)引發異常{
//創建文件流以讀取文件中的數據。
File file =新文件(“d:\\系統功能。doc“);
file inputstream fos = new file inputstream(file);
//創建壹個網絡服務器來接受客戶請求。
server socket ss = new server socket(8801);
socket client = ss . accept();
//創建網絡輸出流並提供數據包裝。
output stream netOut = client . get output stream();
輸出流文檔=新數據輸出流(
new BufferedOutputStream(netOut));
//創建文件讀取緩沖區
byte【】buf =新字節【2048】;
int num = fos . read(buf);
while(num!=(-1)){//文件看完了嗎?
doc . write(buf,0,num);//將文件數據寫出網絡緩沖區
doc . flush();//刷新緩沖區以向客戶端寫入數據。
num = fos . read(buf);//繼續從文件中讀取數據
}
fos . close();
doc . close();
}
}
*/