千金一刻莫空度,老大无成空自伤。这篇文章主要讲述#私藏项目实操分享#Java多线程下载器基础代码相关的知识,希望能为你提供帮助。
文件下载器的基础代码1. HttpURLConnection
从互联网中下载文件的话,需要与文件所在的服务器建立连接,这里可以使用jdk提供的java.net.HttpURLConnection类来帮助我们完成这个操作。jdk11中有提供java.net.http.HttpClient类来替代HttpURLConnection,由于现在使用的是jdk8,因此先不用jdk11中的HttpClient。除此之外还有一些其他第三方提供类可以执行类似的操作,这里就不赘述了。
2.
用户标识
我们通过浏览器访问某个网站的时候,会将当前浏览器的版本,操作系统版本等信息的标识发送到网站所在的服务器中。当用程序代码去访问网站时,需要将这个标识发送过去。下面的标识大家可以拷贝到程序中。
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (Khtml, like Gecko) Chrome/14.0.835.163 Safari/535.1
下载信息1. 计划任务
文件下载的时候最好能够展示出下载的速度,已下载文件大小等信息。这里可以每隔一段时间来获取文件的下载信息,比如间隔1秒获取一次,然后将信息打印到控制台。文件下载是一个独立的线程,另外还需要再开启一个线程来间隔获取文件的信息。java.util.concurrent. ScheduledExecutorService,这个类可以帮助我们来实现此功能。
2. ScheduledExecutorService
【#私藏项目实操分享#Java多线程下载器基础代码】在该类中提供了一些方法可以帮助开发者实现间隔执行的效果,下面列出一些常见的方法及其参数说明。我们可以通过下面方式来获取该类的对象,其中1标识核心线程的数量
ScheduledExecutorService s = Executors.newScheduledThreadPool(1);
??2.1 schedule方法该方法是重载的,这两个重载的方法都是有3个形参,只是第一个形参不同。
- Runnable / Callable< V> 可以传入这两个类型的任务
- long delay 时间数量
- TimeUnit unit 时间单位
2.2 scheduleAtFixedRate方法该方法的作用是按照指定的时间延时执行,并且每隔一段时间再继续执行
- Runnable command 执行的任务
- long initialDelay 延时的时间数量
- long period 间隔的时间数量
- TimeUnit unit 时间单位
2.3 scheduleWithFixedDelay方法
该方法的作用是按照指定的时间延时执行,并且每隔一段时间再继续执行
- Runnable command 执行的任务
- long initialDelay 延时的时间数量
- long period 间隔的时间数量
- TimeUnit unit 时间单位
推荐阅读
- 一文带你熟知ForkJoin
- 持续交付之基于Git Flow代码分支策略实践
- 从HarmonyOS sdk根本上解决TextInput(输入框)不识别飘红的问题
- #yyds干货盘点#通过正则表达式限制输入框只能数字,且不能以0开头
- 利用Java反射处理private变量#yyds干货盘点#
- #yyds干货盘点# JavaSE系列批量处理数据神器——Java数组与引用
- #私藏项目实操分享#Python爬虫实战,requests+xpath模块,Python实现爬取豆瓣影评
- MySQL之实例重启之前必做得几项工作
- WordPress CSS不起作用