javaftp多線程下載文件
/**
*參考例子如下:
*@paramnamelist下載的文件列表
*@parampath下載路徑
*@paramzipname壓縮文件名稱
*/
publicvoidzipDownloadFile(HttpServletResponseresponse,List<string>namelist,Stringpath,Stringzipname){
byte[]buf=newbyte[1024];
try{
//本地保存設置
response.addHeader("Content-Disposition","attachment;filename="
+URLEncoder.encode(zipname,sysEncoding)+".zip");
response.setContentType("application/x-zip-compressed");
//向本地寫文件
ServletOutputStreamsos=response.getOutputStream();
ZipOutputStreamzipOut=newZipOutputStream(newBufferedOutputStream(sos));
for(Stringname:namelist){
ZipEntryentry=newZipEntry(name);
zipOut.putNextEntry(entry);
InputStreambis=this.getStream(path,name);
if(bis!=null){
intreadLen=-1;
while((readLen=bis.read(buf,0,1024))!=-1){
zipOut.write(buf,0,readLen);
}
bis.close();
}
}
zipOut.close();
}catch(Exceptione){
e.printStackTrace();
}
}</string>
『貳』 如何設置多線程FTP下載
FlashfXP只能單線程下載,可以先用FlashfXP登錄FTP站點,選中你要下載的文件,右擊滑鼠,在出現的菜單上選擇:「復制URL(Ctrl+U)」,FlashfXP會提示:「是否復制用戶名及密碼?」,選擇「是」,然後打開迅雷,點「新建(Ctrl+N)」下載任務,在出現的界面上邊:「網址(URL)」裡面(Ctrl+V)填上剛剛粘貼的信息,這樣迅雷就可以從你的FTP站點多線程下載文件了,而且你可以同時下載不同的文件,也是多線程的。當然,萬一你的FTP站點是限制單線程下載的話,為了充分利用帶寬,就只好同時下載其他文件來提高效率。萬一你的FTP站點是限制每個IP只能單線程下載一份文件,這個辦法可能就無能為力了。希望能幫到你,呵呵~~
『叄』 java ftp批量下載異常
我之前也遇到過這樣的事,通過FTP獲取文件的二進制流有限制,獲取第二個流的時候需要斷掉鏈接後再重新連接伺服器讀取流
『肆』 怎樣通過java實現伺服器上文件下載
用HttpClient(commons httpclient)包,模擬一個Get請求,發送到網址172.16.30.230/文件地址。這個文件地址不能是E/Map/123.txt,必須是暴露在伺服器中的應用里的。就像你寫的應用里的一個jsp頁面的目錄。
成功發送get請求後,就會得到response,裡面有流。就是你下載的文件,然後可以通過FileOutputStream,指定你輸出目錄,寫到磁碟上。
『伍』 java如何實現基於http和ftp多線程下載工具...
要訪問網路資源就要去了解你要訪問的網路資源所使用的協議。一般來說我們所使用的協議都是公開式的協議,比如http協議,它在數據的前面部分先設置一些信息來說明它所發送的數據的大小,文件類型等等。而多線程的實現原理就是先從http協議中獲取要下載的資源的資源大小,然後再分多個線程從不同的起點跟終點來分段下載資源。ftp資源的道理也是一樣。當然我並不是網路方面的專家,對網路我也不懂。以後只是我個人見解。
以下是給你找的一個java實現的http多線程下載。你看看吧
http://shazi.javaeye.com/blog/99132
『陸』 java FTP下載
檢查一下是否timeout時間設置過短。不要設置內存或者處理器限制。 還有在IIS的metabase資料庫中找一下FTP的設置,在那裡找配置文件修改最直接。
通過CFtpFileFind 得到文件的URL之後,然後通過CHttpFile::QueryInfo 得到文件大小。
求採納為滿意回答。
『柒』 C#多線程ftp下載的實現(java也可,關鍵是思路)
參考答案:讀書之法,在循序而漸進,熟讀而精思。——朱熹