前言

在我的任务清单中,很早就有了一个文件下载器,但一直忙着没空去写。最近刚好放假,便抽了些时间完成了下文中的这个下载器。

介绍

同样的,还是先上效果图吧。

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这里查看源码,这里由于篇幅原因就不贴上了。

Java多线程下载器FileDownloader(支持断点续传、代理等功能)的更多相关文章

  1. java多线程下载和断点续传

    java多线程下载和断点续传,示例代码只实现了多线程,断点只做了介绍.但是实际测试结果不是很理想,不知道是哪里出了问题.所以贴上来请高手修正. [Java]代码 import java.io.File ...

  2. java实现下载器(以及创建一个URL对象)

    java实现下载器(以及创建一个URL对象) 1.思路讲解: (1)注意路径:是网络路径噢 (2)创建创建网路协议对象(远程对象):HttpURLConnection urlConnection (3 ...

  3. <基于Qt与POSIX线程>多线程下载器的简易搭建

    原创博客,转载请联系博主! 本项目已托管到本人Git远程库:https://github.com/yue9944882/Snow 项目目标  Major Functionality 开发环境:  Ce ...

  4. JAVA多线程下载网络文件

    JAVA多线程下载网络文件,开启多个线程,同时下载网络文件.   源码如下:(点击下载 MultiThreadDownload.java) import java.io.InputStream; im ...

  5. java编写的Http协议的多线程下载器

    断点下载器还在实现中...... //////////////////////////////////界面/////////////////////////////////////////// pac ...

  6. java 多线程下载文件并实时计算下载百分比(断点续传)

    多线程下载文件 多线程同时下载文件即:在同一时间内通过多个线程对同一个请求地址发起多个请求,将需要下载的数据分割成多个部分,同时下载,每个线程只负责下载其中的一部分,最后将每一个线程下载的部分组装起来 ...

  7. ASIHTTPRequest下载示例(支持断点续传)

    一.创建网络请求队列 首先,创建网络请求队列,如下: ASINetworkQueue   *que = [[ASINetworkQueue alloc] init]; self.netWorkQueu ...

  8. edtftpj让Java上传FTP文件支持断点续传

    在用Java实现FTP上传文件功能时,特别是上传大文件的时候,可以需要这样的功能:程序在上传的过程中意外终止了,文件传了一大半,想从断掉了地方继续传:或者想做类似迅雷下载类似的功能,文件太大,今天传一 ...

  9. python10min系列之多线程下载器

    今天群里看到有人问关于python多线程写文件的问题,联想到这是reboot的架构师班的入学题,我想了一下,感觉坑和考察的点还挺多,可以当成一个面试题来问,简单说一下我的想法和思路吧,涉及的代码和注释 ...

随机推荐

  1. Windows下配置Redis,并修改密码

    原文:Windows下配置Redis,并修改密码 Windows下配置Redis,并修改密码 下载 Redis Windows版本的GitHub链接,直接下载zip文件解压到指定文件夹下或者下载msi ...

  2. .net EF Join 关联表分页查询

    Join中第二个参数和第三个参数即为两张表关联对应的字段 第四个参数new 后面如果不写Model名,系统会自动生成带字段的list类型 IQueryable<Operator> oper ...

  3. DHTMLEdit控件的安装

    xp中自带了DHTMLEdit.ocx, 所以只需安装即可 但是可视化设计面板中没有这个控件,需要我们手动安装一下 具体方式: [import AcitveX control  在控件板上的安装]一. ...

  4. return view 详解 MVC

    1.return View(); 返回值 类型:System.Web.Mvc.ViewResult将视图呈现给响应的 View() 结果. 注释 View() 类的此方法重载将返回一个具有空 View ...

  5. 2019年5月23日 AY 程序员调侃语录

    我是AY,杨洋,做wpf开发的,最近得了一种病,程序员患得患失综合征.同事说,我年纪在变大,技术跟不上.业余之间,我原创了写了一些语录,给大家中午休息,累疲惫的时候,开心放松下. 1.有很多公司找我谈 ...

  6. Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]解决

    Laravel5.x运行迁移命令创建数据表:php artisan migrate报错. Illuminate\Database\QueryException  : SQLSTATE[42000]: ...

  7. SYN2306B型 GPS北斗双模授时板

    SYN2306B型 GPS北斗双模授时板 产品概述 SYN2306B型GPS北斗双模授时板是由西安同步电子科技有限公司精心设计.自行研发生产的一款双模授时板卡,接收北斗或者GPS北斗混合授时卫星信号, ...

  8. 一线Python运维开发带你秒懂Flask框架

    相信曾经纠结过这个问题:怎样才能彻底掌握flask? Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . ...

  9. localstorage实现带过期时间的缓存功能

    前言 一般可以使用cookie,localstorage,sessionStorage来实现浏览器端的数据缓存,减少对服务器的请求. 1.cookie数据存放在本地硬盘中,只要在过期时间之前,都是有效 ...

  10. 浅入深出Vue:数据渲染

    今天来正式开始 vue的学习,首当其冲的当然是数据的渲染.毕竟数据就是拿来看的,看看如果使用 vue来展示数据. 为什么渲染 俗话说 "人靠衣装马靠鞍", 那咱们的代码就是得靠 U ...