Java多線程下載器FileDownloader(支持斷點續傳、代理等功能)


前言

在我的任務清單中,很早就有了一個文件下載器,但一直忙着沒空去寫。最近剛好放假,便抽了些時間完成了下文中的這個下載器。

介紹

同樣的,還是先上效果圖吧。

Image

Jar包地址位於 FileDownloader

目前實現的主要功能有:

  • 多線程下載
  • 斷點續傳
  • 自定義頭部等

即將完成的包括:

  • 添加代理功能
  • ...

感覺做了回標題黨,代理功能由於時間關系,將在下次更新加入。
關於設置代理,我這篇文章 Java實現Ip代理池 中有具體的設置方法。
另外除了這個代理功能,我也實在不知道下載器能加些啥功能了。。

使用說明

jar包的運行方式不用多說了吧,直接

java -jar FileDownloader.jar

這樣不加任何參數的話會輸出下文中的內容:

   _____ __    ___                  __             __
  / __(_) /__ / _ \___ _    _____  / /__  ___ ____/ /__ ____
 / _// / / -_) // / _ \ |/|/ / _ \/ / _ \/ _ `/ _  / -_) __/
/_/ /_/_/\__/____/\___/__,__/_//_/_/\___/\_,_/\_,_/\__/_/
                                                            
usage: FileDownloader [options ...] <url>
 -c                      加上表明關閉斷點續傳,默認開啟
 -H,--Header <arg>       添加請求頭部,格式:"header=value",多個可疊加使用該H參數
 -h,--help               使用說明
 -n,--num <arg>          開啟的線程數量,默認為8
 -U,--User-Agent <arg>   添加User-Agent標識頭

於是,我們可以加上一些參數,比如這樣

java -jar FileDownloader.jar  -c -U "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0" -H Accept=* -H Cookie=value -n 10 https://www.picpick.org/releases/latest/picpick_inst.exe

這樣的話,我們就是 關閉了斷點續傳功能,帶上了 “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0” 的User-Agent, “*”的Accept頭部,value的Cookie,同時線程數量設置為10,然后便開始下載我們后面的資源了。其中注意如果某項值含有空格的話,要用雙引號圈起來,比如上面的user-agent,不然可能會解析錯誤。

實現

最后,如果對於其中一些實現細節感興趣的朋友,可以 到asche910這里查看源碼,這里由於篇幅原因就不貼上了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM