資源簡介
里面有幾個文件還挺有用的,可以參考參考~~~~~~~~~~

代碼片段和文件信息
package?com.huawei;
import?java.io.BufferedInputStream;
import?java.io.DataOutputStream;
import?java.io.File;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.RandomAccessFile;
import?java.net.HttpURLConnection;
import?java.net.URL;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Vector;
/**
?*?@author?Terry
?*?待改進為多線程
?*/
public?class?GetRemoteFile_Client_GoOn?{
private?static?String?remoteFilePath?=?“http://80.hb.jfsky.com/book/JXTJava-jfsky.rar“;
private?static?String?localFilePath?=?“D:\\test.rar“;
????private?static?int?BUFFER_SIZE?=?8096;//緩沖區大小
????public?final?static?boolean?DEBUG?=?true;//調試用
????
//????private?List?downLoadList?=?new?ArrayList();//URL列表
//???private?List?fileList?=?new?ArrayList();//下載后的保存文件名列表
????
public?GetRemoteFile_Client_GoOn()?{
}
/**
?*?重置URL列表和要保存的文件名列表
?*/
public?void?resetList(){
//downLoadList.clear();
//fileList.clear();
}
/**
?*?增加下載列表項
?*/
public?void?addDownloadItem(String?remoteUrlString?localFileName){
// downLoadList.add(remoteUrl);
// fileList.add(localFileName);
}
/**
?*?確定是否存在沒有下載完成的文件
?*/
private?boolean?isExistFile(String?path)
{
File?file?=?new?File(path);
if?(file.exists())
return?true;
else
return?false;
}
/**
?*?確定已經下載了的文件大小
?*/
private?long?FileSize(String?path)
{
File?file?=?new?File(path);
return?file.length();
}
/**
?*?將下載完全的文件更名,去掉.tp名
?*/
private?void?FileRename(String?fName?String?nName)
{
File?file?=?new?File(fName);
file.renameTo(new?File(nName));
file.delete();
}
/**
?*?下載遠程文件
?*/
public?static?void?downloadRemoteFile(){
URL?url?=?null;
HttpURLConnection?urlc?=?null;
DataOutputStream?dos?=?null;
BufferedInputStream?bis?=?null;
FileOutputStream?fos?=?null;
//String?localFile?=?“d:\\x.x“;//文件保存的地方及文件名,具體情況可以改
String?localFile_bak?=?localFilePath?+?“.tp“;//?未下載完文件加.tp擴展名,以便于區別
GetRemoteFile_Client_GoOn?gco?=?new?GetRemoteFile_Client_GoOn();
long?fileSize?=?0;
long?start?=?System.currentTimeMillis();
int?len?=?0;
byte[]?bt?=?new?byte[BUFFER_SIZE];
RandomAccessFile?raFile?=?null;
long?totalSize?=?0;//?要下載的文件總大小
try?{
url?=?new?URL(remoteFilePath);
urlc?=?(HttpURLConnection)?url.openConnection();
totalSize?=?Long.parseLong(urlc.getHeaderField(“Content-Length“));
if(DEBUG){
System.out.println(“下載文件大小為:“?+?totalSize);
}
urlc.disconnect();//?先斷開,下面再連接,否則下面會報已經連接的錯誤
urlc?=?(HttpURLConnection)?url.openConnection();
//?確定文件是否存在
if?(gco.isExistFile(localFile_bak))//?采用斷點續傳,這里的依據是看下載文件是否在本地有.tp有擴展名同名文件
{
System.out.println(“文件續傳中...“);
fileSize?=?gco.FileSize(localFile_bak);?//?取得文件大小,以便確定隨機寫入的位置
System.out.println(“fileSize:“?+?fileSize);
//?設置User-Agent
//?urlc.setRequestProperty(“User-Agent““NetFox“);
//?設置斷點續傳的開始位置
urlc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5268??2009-08-08?00:01??com\huawei\GetRemoteFile_Client_GoOn.java
?????文件???????3761??2009-08-07?23:41??com\huawei\HttpReader.java
?????文件????????475??2009-08-07?23:45??com\huawei\IRandomAccess.java
?????文件???????1324??2009-08-08?00:30??com\huawei\JavaExecBat.java
?????文件????????183??2009-08-08?00:08??com\huawei\Test.java
?????文件???????2496??2009-08-11?22:15??com\huawei\socket\ServerTest.java
?????文件???????2530??2009-08-11?22:01??com\huawei\socket\ClientSocket.java
?????文件???????3065??2009-08-11?22:32??com\huawei\socket\ClientTest.java
?????文件???????2961??2009-08-11?22:31??com\huawei\socket2\Server.java
?????文件???????2772??2009-08-11?22:30??com\huawei\socket2\Client.java
?????文件???????6745??2009-08-11?22:33??com\huawei\thread.txt
?????目錄??????????0??2009-08-11?21:57??com\huawei\socket
?????目錄??????????0??2009-08-11?22:18??com\huawei\socket2
?????目錄??????????0??2009-08-07?23:03??com\huawei
?????目錄??????????0??2009-08-07?23:03??com
-----------?---------??----------?-----??----
????????????????31580????????????????????15
評論
共有 條評論