开发者社区> 吞吞吐吐的> 正文

[工具库]JFileDownloader工具类——多线程下载网络文件,并保存在本地

简介:
+关注继续查看

本人大四即将毕业的准程序员(JavaSE、JavaEE、android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具。

我会在本博客中陆续发布一些平时可能会用到的工具。

代码质量可能不是很好,大家多担待!

代码或者思路有不妥之处,还希望大牛们能不吝赐教哈!

 

以下代码为本人原创,转载请注明:

本文转载,来自:http://www.cnblogs.com/tiantianbyconan/archive/2013/02/20/2919132.html

 

JFileDownloader:用于多线程下载网络文件,并保存在本地。

源码如下:

1.JFileDownloader类:主要负责下载的初始化可启动工作。

View Code

 

2.JFileDownloadListener接口:该接口用于监听JFileDownloader下载的进度。

View Code

 

3.JFileDownloaderNotificationThread类:该线程为通知下载进度的线程。

View Code

 

4.JFileDownloadThread类:真正的下载线程,该线程用于执行该线程所要负责下载的数据。

View Code

 

使用方法如下:

复制代码
 1 String urlPath = "http://localhost:8080/firstserver/files/test.zip";
 2 String destFilePath = "C:\\Users\\admin\\Desktop\\杂\\临时仓库\\test.zip";
 3 int threadCount = 3;
 4 
 5 JFileDownloader downloader = new JFileDownloader(urlPath, destFilePath, threadCount);
 6 //或者:
 7 JFileDownloader downloader = new JFileDownloader()
 8             .setUrlPath(urlPath)
 9             .setDestFilePath(destFilePath)
10             .setThreadCount(threadCount)
11             .setFileDownloadListener(new JFileDownloadListener() { // 设置进度监听器
12                     public void downloadProgress(int progress, double speed, long remainTime) {
13                         System.out.println("文件已下载:" + progress + "%,下载速度为:" + speed + "kb/s,剩余所需时间:" + remainTime + "毫秒");
14                     }
15                     public void downloadCompleted(File file, long downloadTime) {
16                         System.out.println("文件:" + file.getName() + "下载完成,用时:" + downloadTime + "毫秒");
17                     }
18             });
19     try {
20         downloader.startDownload(); // 开始下载
21     } catch (Exception e) {
22         e.printStackTrace();
23     }
复制代码

 

 

本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/archive/2013/02/20/2919132.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
工控CTF_纵横网络靶场_奇怪的文件
工控CTF_纵横网络靶场_奇怪的文件
79 0
electron如何自定义目录,修改文件名保存下载的网络文件
很多同学觉得用localstorage可以代替vuex, 对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中一个组件改变了该数据源,希望另一个组件响应该变化时,localstorage无法做到,原因就是区别1。
525 0
js实现灵活下载和预览网络链接pdf文件
js实现灵活下载和预览网络链接pdf文件
403 0
从Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)
从Tensorflow模型文件中解析并显示网络结构图(CKPT模型篇)
229 0
从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)
从Tensorflow模型文件中解析并显示网络结构图(pb模型篇)
259 0
『NLog』.Net使用NLog使用方式及详细配置(输出至文件/RabbitMQ/远程网络Tcp)
📣读完这篇文章里你能收获到 - Nlog输出至文件/RabbitMQ/远程网络Tcp配置文档 - Nlog配置参数详解 - .NET CORE项目接入
1084 0
RH358提供基于文件的网络存储--自动化调配基于文件的存储
RH358提供基于文件的网络存储--自动化调配基于文件的存储
84 0
RH358提供基于文件的网络存储--提供SMB文件共享
RH358提供基于文件的网络存储--提供SMB文件共享
93 0
RH358提供基于文件的网络存储--导出NFS文件系统
RH358提供基于文件的网络存储--导出NFS文件系统
103 0
lsof:获取网络信息、用户操作、进程信息、文件信息
lsof:获取网络信息、用户操作、进程信息、文件信息
122 0
+关注
吞吞吐吐的
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
阿里云网络产品概览
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多