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

  • 相关阅读:
    浅谈ES6
    iframe的应用
    vue时时监听input输入框中 输入内容 写法
    点击模态框滑动出来 抽屉
    this.$router 和this.$route 的区别
    iview框架 两侧弹框 出现第二层弹框 一闪而过的问题
    input框中的必填项之取消当前input框为必填项
    v-model 的修饰符
    单页面开发和多页面开发的优缺点
    原型继承+借用构造函数继承 的一些理解
  • 原文地址:https://www.cnblogs.com/asche/p/11221322.html
Copyright © 2020-2023  润新知