導航:首頁 > 編程語言 > java線程下載文件

java線程下載文件

發布時間:2022-05-28 06:09:51

A. 某公司面試題java11使用並發多線程加速下載文件,如何寫

先建一個用於下載文件的多線程類,通常要指明下載文件的位置(URL)和文件名以及保存到本地的路徑
public class FileDownloader implements Runnable
{
private static File file;//要下載的文件
private static String url;//文件所在URL
private static File storagePath;//保存路徑
public static void initialize(File file, String url, File storagePath)//初始化靜態欄位,初始化的代碼不用我寫吧
}
然後,指明同步塊,目的是讓各個線程共享一個文件資源,那樣它們可以知道同一個文件的下載狀況(即獲取其他線程下載文件到哪個位置,以防重復下載)
public synchronized void fileDownload()//此方法用於下載文件,一般的Java程序員都會寫,實在不會我可以幫你補上
或者
public void fileDownload(){
synchronized(file){
synchronized(url){
synchronized(storagePath){
}}}}//給每個欄位加上同步塊
run()方法的實現就以自己的喜好去寫吧,只要裡面調用了fileDownload()方法就行。
public void run(){

fileDownload();//下載文件

}
然後,在主類的main方法中創建一個多線程數組:
Runnable[] fds=new FileDownloader[線程數量];//fds為file_downloaders縮寫
Thread[] threads=new Thread[線程數量];
最後使用循環把所有的線程逐一啟動。
for(int i=0;i<線程數量;i++){
threads[i]=new Thread(fds[i]);
threads[i].start();
}

B. JAVA多線程下載東西為什麼要先創建一個大小相同的空文件呢

讀懂題目,再回答!
多線程下載,就是說:有多個人同時把A車上貨物搬到B車上去。每個人就像一個線程。
如果不給每個人弄個與B車相同結構的車,那每個人搬的東西搬放方式或位置將不同,到時候,合起來的時候就會放上整齊,或放不滿,放不下的問題。
試想,每個人都以B車的結構搬來貨物,又以相同的方式擺放,只不過,各擺各的部分,合起來不就是完整的一車貨物了嗎?
說白了,還是數據結構的問題。優秀和合理的數據結構,使程序開發起來事半功倍。

C. Java語言多線程下載不同文件

這個其實很簡單,重要的就是要建立 線程類,包含下載文件地址參數,以及具體下載配置,如果是ftp的話;
在一個就是構建線程池對下載的數量分配。具體的可以自己嘗試開發下,別人咀嚼過的永遠沒有味道 ,即便給你標注好注釋,過一陣子你也會忘記。

D. 請問你的java在線程里下載文件是怎麼實現的線程這方面我不大懂

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
OutputStream o = response.getOutputStream();
byte b[] = new byte[1024];
// the file to download.
String directory = request.getParameter("csvLogDir");
String fileName = request.getParameter("csvLogName");
File fileLoad = new File(directory, fileName);
// the dialogbox of download file.
response.setHeader("Content-disposition", "attachment;filename="
+ fileName);
// set the MIME type.
response.setContentType("application/x-tar");
// get the file length.
long fileLength = fileLoad.length();
String length = String.valueOf(fileLength);
response.setHeader("Content_Length", length);
// download the file.
FileInputStream in = new FileInputStream(fileLoad);
int n = 0;
while ((n = in.read(b)) != -1) {
o.write(b, 0, n);
}
}

最簡單的就是直接把a標簽寫成文件URL,哈哈哈,這個方法很淫盪的

E. java實現在線程里下載文件時,如何中斷線程停止下載

線程設置一個變數,公開SET方法。當你想讓它停下來。就能過這個方法傳一個值。線程中判斷是停止,那就停下來。

如果是timer,有停止方法。

F. 用java實現文件的下載,如何提高下載速度(非web開發)

下面貼出的代碼是一個簡單的讀取遠程文件保存到本地的實現,至於提高下載速度你可以利用多線程,具體可參考最下面的那個網址——

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

public class DownloadTester {
public static void main(String[] args) throws IOException {
String urlStr = "http://img..com/img/logo-.gif";
String path = "D:/";

String name = urlStr.substring(urlStr.trim().lastIndexOf("/"));

URL url = new URL(urlStr);
InputStream in = url.openConnection().getInputStream();

File file = new File(path + name);
FileOutputStream out = new FileOutputStream(file, true);

int counter = 0;
int ch;
byte[] buffer = new byte[1024];
while ((ch = in.read(buffer)) != -1) {
out.write(buffer, 0, ch);
counter += ch;

System.out.println(counter + ":byte");
}
out.flush();
in.close();
out.close();
}
}

G. JAVA多線程下載問題

一般來講。我會使用
synchronized(this){
this.wait();
}

synchronized(this){
this.notify();
}

H. java多線程下載比單線程慢!!

哥子
多線程不是說一定比單線程快,要看網路的穩定情況,還有多線程的運行過程其實也就是不同的時間段內使用CPU許可權的分配,對於多線程是一般用於開起多個同時要使用的東西我感覺才有用,如果你只是用於一個程序的開起
你用多線程干什麼呢?

I. java多線程下載的問題請教。

你書上的code和http://www.cnblogs.com/wanghui390/p/4046575.html 這個網址上的一樣么?

如果一樣的話,那麼我覺得這么做的目的應該是:

fileSize/threadNum 的結果是四捨五入之後的結果,如果是捨去了一部分,那麼按照這個網址上的code到最後就會有一點沒有下載。所以它另每個filtePart的大小都增大1,並且在DownThread裡面加入了另外一個條件:
length < currentPartSize && (hasRead = inStream.read(buffer)) > 0

就可以保證在文件的末尾,停止讀操作。

J. 如何使用java做一個簡單的窗體多線程下載器

用java swing做界面
java net來下載唄。。。

多線程的話 你可以先獲取那個文件,然後就能得到 文件大小 位元組數組,然後按照設定的線程數,線程1負責數組0---數組1000的位元組下載,線程2負責數組1001到2000 以此類推
那麼這里1000就是緩沖大小拉!

閱讀全文

與java線程下載文件相關的資料

熱點內容
群體智能基本演算法 瀏覽:370
可編程軟體分為哪兩種 瀏覽:340
格林什麼app可以看 瀏覽:697
飛盧app仙俠熱賣推薦怎麼樣 瀏覽:722
飛秋上傳文件到共享文件夾 瀏覽:691
伺服器的共享文件夾如何訪問 瀏覽:232
復盛螺桿壓縮機講解 瀏覽:332
柱在基礎插筋需要加密嗎 瀏覽:80
51單片機中斷寄存器 瀏覽:65
壓縮文件後有病毒怎麼辦 瀏覽:618
蘋果ipad怎麼登安卓王者賬號 瀏覽:862
街頭足球伺服器已滿是什麼意思 瀏覽:462
androidspeex迴音消除 瀏覽:133
加密會議什麼意思 瀏覽:34
ubuntu命令行聯網 瀏覽:7
37選7中獎概率及演算法 瀏覽:593
加密狗哪個版本好 瀏覽:619
cisco命令手冊 瀏覽:502
omp演算法c 瀏覽:129
上海浦東機場源碼 瀏覽:885