- 浏览: 2046066 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (795)
- java (263)
- 聚类搜索引擎 (9)
- 经验之谈 (67)
- DSP (3)
- C++ (140)
- Linux (37)
- SNMP (6)
- Python (6)
- 数据库 (61)
- 网络 (20)
- 算法 (15)
- 设计模式 (4)
- 笔试题 (38)
- 散文 (35)
- 数据结构 (9)
- 银行知识 (0)
- 榜样 (9)
- Lucene (15)
- Heritrix (6)
- MetaSeeker (0)
- netbeans (12)
- php (3)
- 英语 (8)
- DB2 (0)
- java基础 (5)
- mongodb & hadoop (4)
- Javascript (7)
- Spring (4)
- ibatis & myibatis (1)
- velocity (1)
- 微服务 (0)
- paddle (1)
- 第三方 (0)
- 知识沉淀 (1)
- 建模 (0)
最新评论
-
0372:
标示对java很陌生!
中文乱码解决的4种方式 -
梦留心痕:
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
java中如何忽略字符串中的转义字符--转载 -
yanjianpengit:
[b][/b]
java为什么非静态内部类里面不能有静态成员 -
springdata-jpa:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
eclipse 如何把java项目转成web项目 -
qq1130127172:
,非常好。
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
一 主类:MainFrame
(1)导航树:创建树中结点(组合)
(2)下载表格:新建表格、表格模型、将表格模型赋给表格
(3)信息列表:用List<Info>装了四个Info,然后提交给JList。
(4)新建任务界面 界面(Box)、按钮的监听
(5)工具栏(5个Action):新任务、开始、暂停、删除任务、移除已经完成任务
(6)悬浮窗口:主窗口、弹出菜单(与托盘同) 内嵌在主类中
(7)任务栏图标(6个菜单):打开/关闭、新任务、开始、暂停、移除完成、退出
监听器:
(1)点击表格,鼠标监听器,列表显示信息。
(2)点击导航树,鼠标监听器,得到选择节点,刷新表格,表格得到模型,模型重设资源对象。
(3)窗口关闭监听。
(4)任务栏图标的监听。
开始所有任务调用DownloadHandler的resumeDownload()。
删除已下载完的,就从DownloadContext中的resources删除该项。
退出前,先序列化保存。这样可以断点续传。
二:
(2)导航树类
节点提交给树、设置树、设置渲染器。
(3)树渲染器类 设置该JLabel的图标和名称
三:
(4)表格类 设置表格的列宽、设置表格列的渲染器
(5)表格模型类 表格所拥有的列名数组、资源集resources、根据资源集返回某单元格值
(6)表格渲染器类 设置一个单元格中的显示
(7)进度条类 (也是一个渲染器)
四:
(8)新建任务界面类 创建资源,调用DownloadHandler类的doDownload(r)方法。
(9)悬浮窗类 菜单和监听
五:
(10)节点类:
共同父类:DownloadNode
任务TaskNode、正在下载DownloadingNode、下载失败FailNode、下载完成FinishNode
六:
(11)Info信息类:信息列表中的信息对象。
七:
(12)资源对象:
Resource属性:关联的类part、
(1)资源id。(2)地址url。(3)保存目录filePath。(4)改后的名称fileName
(5)状态state。(6)文件大小size。(7)下载起始时间downloadDate
(8)进度progress.(9)下载速度speed。(10)使用的时间costTime(11)剩下的时间spareTime
(12)拆分的块集合parts(13)线程数threadSize。(14)上一次下载的大小 preLength
根据每个块,计算出当前的总长度currentLength。
计算下载速度speed。 即:当前的总长度-上一次长度
通过Http的连接(根据url),得到文件总共的大小size。
计算进度progress。 当前的总长度/总大小
计算剩余时间spareTime。 总大小-当前的总长度/速度
设置状态时,要原状态销毁,新状态初始化执行。
八:工具集
(13)文件工具类
(1)根据地址名得到文件名。(2)删除part临时文件
(14)图片工具类
存储图片的地址,返回图片信息。
(15)日期工具类
给时间格式化
九:
(15)ContextHolder上下文支持类:
包含 DownloadContext和DownloadHandler
为了保证这两个对象都只有一份,并且随时随地都可用。
十:DAO类
(16)下载工具上下文 DownloadContext
包含5个状态、当前程序的资源集List<Resource> resources
两种方式来访问:
(1)根据状态,得到资源集resources
(2)根据资源id查找具体资源
(17)下载状态类
接口TaskState、抽象类AbstractState
连接Connecting、下载Downloading、完成Finished、失败Failed、暂停Pause
完成Finished:stopTimer(resource)。停止CountTimeTask
失败Failed:stopTimer(resource)。停止CountTimeTask
暂停Pause:stopTimer(resource)。停止CountTimeTask
十一:
(18)下载处理类 DownloadHandler
(1)doDownload(r)开启时间计算任务CountTimeTask,给每part分配任务,开启线程
(2)stopTimer(r)就是停止了时间增长。resumeDownload(r)继续原来任务。
(19)下载的线程类DownloadThread
从服务器读资源到本地。资源的状态的设定。主要的逻辑。
十二:
(20)Part拆分成的块。
开始位置begin、这个part文件的长度length、
该Part已经下载的文件长度currentLength、每个Part对应的文件名partName(自动生成)。
注:
Action对象
(1)容器类JMenu、JToolBar会为Action对象自动创建组件,并注册监听器。
jToolBar.add(action);
(2)Swing组件JButton、JCheckBox用构造方法创建。
jButton = new JButton(action);
输入信息:(1)下载地址(2)保存目录(3)文件名(4)线程数
悬浮窗口与任务栏图标都是调用主类中的几个方法。
图片加载步骤:图片路径(String),得到File,通过ImageIO()类读取得到BufferedImage对象。
得到选择树的节点信息步骤:
先是treePath = navTree.getSelectionPath();
然后node = (DefaultMutableTreeNode)treePath.getLastPathComponent();
最后(DownloadNode)node.getUserObject();
Resource属性:
(1)资源id。(2)地址url。(3)保存目录filePath。(4)改后的名称fileName
(5)状态state。(6)文件大小size。(7)下载时间downloadDate
(8)进度progress.(9)下载速度speed。(10)使用的时间costTime(11)剩下的时间spareTime
(12)拆分的块parts(13)线程数threadSize。(14)上一次下载的大小 preLength
对于Resource对象,需要外部传进来赋值的成员就用set方法,否则自己生成。对于状态的设置(起始就是状态的转变),因为设置状态,还要对状态进行处理,所以编写了代码。
自动生成的id。UUID.randomUUID().toString();
根据url作连接:
URL resourceURL = new URL(this.url);
HttpURLConnection urlConnection = (HttpURLConnection)resourceURL.openConnection();
urlConnection.connect();
this.size = urlConnection.getContentLength();
urlConnection.disconnect();
显示出资源:表格的模型、ContextHolder、DownloadContext、Resource。
资源在模型和上下文DownloadContext中是顺序存储的。
行是具体哪个资源,列是资源的成员。
设定资源:主面start()、DownloadHandler的resumeDownload、doDownload、DownloadThread
所谓刷新表格,就是重设资源对象。
表格的getValue()方法调用了模型的getValue()方法。
将DownloadContext上下文对像写到序列化文件中。
反序列化完成后,将DownloadContext中的resources存到模型中,然后表格刷新。
每个资源都要有个花费的时间,故有个计算时间的任务。
urlConnection.getInputStream();
流需要关闭、连接需要关闭、文件需要关闭。
下载过程:服务器端到流InputStream,流到内存缓冲区buffer,在到文件RandomAccessFile。
最后合并part文件。
发表评论
-
流式计算
2022-02-07 14:31 279private void postHandle(List& ... -
消息队列使用的四种场景介绍
2018-08-09 16:34 2471以下介绍消息队列在实际应用中常用的使用场 ... -
设计模式
2018-04-11 16:49 9801.桥梁模式,将抽象部分与实现部分隔离开,抽象部分持有实现 ... -
Spring boot web可以访问Service和Mapper层
2018-03-26 16:42 2861Spring boot的web层可以访问Service层,然 ... -
FreeMarker的基础语法使用 && 心得和技巧
2018-01-10 10:03 2053FreeMarker是一个模板引 ... -
webService----wss4j+cxf实现WS-Security(基于UsernameToken)
2017-10-23 18:58 1554分享一下wss4j+cxf基于UsernameToken的安 ... -
Spring MVC之LocaleResolver(解析用户区域)
2017-09-23 15:55 2517为了让web应用程序支持国际化,必须识别每个用户的首选区域, ... -
(转)java泛型
2016-11-12 20:29 1646http://www.cnblogs.com/lwbqqyu ... -
java中如何忽略字符串中的转义字符--转载
2016-06-28 16:42 9899原文地址:http://my ... -
(转)关于JAP FetchType.LAZY(hibernate实现)的理解 .
2016-04-27 15:22 5104JPA定义实体之间的关系有如下几种: @OneToOne ... -
(转)hibernate annotation注解方式来处理映射关系
2016-04-26 16:52 1836http://www.cnblogs.com/xiao ... -
代码片段,导出的文件头
2015-11-18 20:34 1600public static void setDownload ... -
(转)为什么要两次调用encodeURI来解决乱码问题
2015-08-03 20:19 2481地址:http://blog.csdn.net/howla ... -
杀死进程
2015-07-21 14:54 1285sudo lsof -i :9000 COMMAND P ... -
批处理batch,执行多个SQL语句
2015-07-15 19:21 10609批处理batch,执行多个SQL语句。 ... -
中文乱码解决的4种方式
2015-07-03 14:20 2627目前收集到4中方法,中文传参一documentPath为例: ... -
GET请求的中文乱码问题及处理意义
2015-07-03 13:47 6631首先看一段乱码的程序 ... -
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
2015-03-16 17:59 3235第一次看到ByteArrayOutputStream的时 ... -
(转)SpringMVC 基于注解的Controller @RequestMapping @RequestParam..
2014-07-28 17:42 2272概述 继 Spring 2.0 对 Spring MVC ... -
java中序列化的serialVersionUID解释
2014-07-25 09:26 1883serialVersionUID: 字面意思上是序列化的版本号 ...
相关推荐
《FlashGet:高效便捷的上传下载利器》 FlashGet,这款知名的互联网下载工具,以其卓越的性能和稳定性,深受广大用户的喜爱。它以其独特的多线程分段下载技术,极大地提高了文件下载的速度和效率,是互联网用户进行...
标题中的“FlashGet”指的是一个著名的互联网下载管理工具,它在早期互联网时代非常流行,尤其在中国用户中广泛应用。FlashGet以其高效、稳定和多线程下载的特点,深受用户喜爱。 FlashGet的主要功能包括: 1. **...
《FlashGet多线程版:高效下载的利器》 FlashGet,一款经典的多线程下载管理器,以其独特的高速下载能力和强大的文件管理功能,在互联网用户中广受好评。特别是其多线程版本,更是将下载速度提升到了一个新的高度,...
FlashGet,中文名为“快车”,是一款经典的多线程下载工具,因其在早期互联网时代出色的下载速度和稳定性而深受用户喜爱。它具有许多独特的特点,使得它在众多下载软件中脱颖而出。 首先,FlashGet的核心优势在于其...
FlashGet是一款经典的多线程下载工具,其v2.2.1229版本是该软件的一个特定更新,主要服务于用户快速、高效地下载互联网上的文件。FlashGet以其优秀的分段下载技术和稳定的性能,在众多下载管理器中脱颖而出。 1. **...
突破flashget原有的十个线程,不过不要把线程挑的太大,要不对机器不好噢!
《疯狂Java flashget源码解析》 在编程领域,源码是理解软件工作原理的最直接途径。"疯狂Java flashget源码"提供了一个模仿知名下载工具FlashGet的多线程下载功能的Java实现,这对于Java开发者,尤其是对多线程编程...
《古董版下载软件FlashGet-1.65:经典与纯净的下载管理器》 在互联网技术日新月异的今天,许多老旧的软件逐渐淡出人们的视线,但有些经典之作却因其独特的魅力和实用性而被用户珍藏。FlashGet-1.65就是这样一款被...
Flashget V1.9是一款经典的多国语言版本下载管理器,专为提高互联网文件下载效率而设计。这个软件以其高效、稳定和用户友好的界面在众多下载工具中脱颖而出。"一键安装"的特性使得用户无需复杂的配置步骤,只需简单...
标题中的“发布下载时调用flashget Js代码”是指在网页上发布文件供用户下载时,使用JavaScript(Js代码)来触发FlashGet软件自动下载的一种技术。FlashGet是一款多线程下载管理器,它能够提高下载速度并方便地管理...
《模仿FlashGet下载工具的设计与实现》 FlashGet是一款经典的多线程下载工具,它以其高效、稳定的特点深受用户喜爱。本篇文章将深入探讨如何模仿FlashGet,从设计思路到核心技术,再到具体实现,帮助读者了解下载...
《FlashGet 1.73:经典下载利器的多线程增强版》 FlashGet,作为一款曾经在互联网上广受好评的下载管理器,以其高效、稳定和易用性赢得了众多用户的青睐。特别是它的1.73版本,被许多资深用户视为经典中的经典。这...
FlashGet,一款经典的老牌多线程下载工具,以其高效、稳定和易用性深受用户喜爱。在互联网初期,它以其独特的“智能动态分割”技术和“多点连接”功能,大大提高了大文件下载的速度和效率,是当时许多网民必备的下载...
快车flashget_15940_1.rar快车flashget_15940_1.rar快车flashget_15940_1.rar快车flashget_15940_1.rar快车flashget_15940_1.rar快车flashget_15940_1.rar
《FlashGet下载工具:经典与实用的网络下载利器》 FlashGet,作为一款曾经风靡一时的下载管理软件,以其高效、稳定和易用性在众多下载工具中脱颖而出。这款"非常老的FlashGet下载工具"尽管年代久远,但其独特的优势...
《FlashGet下载神器:深入解析与使用指南》 FlashGet,中文名“网际快车”,是一款历史悠久且深受用户喜爱的下载管理软件。其1.0.3版本在中国用户群体中有着广泛的应用,因其高效、稳定及多线程下载的特点而备受...
标题“FlashGet 2.1”指的是一个早期版本的FlashGet下载管理器,这是一款流行的互联网下载工具。FlashGet以其多线程下载技术而闻名,它能够将一个文件分割成多个部分并同时下载,显著提高了下载速度。这个特定的版本...
flashget3.5.0.1128繁體中文安裝黨 最好用的快車下載程式.附帶bt下載
flashget_75356_1.exe
FlashGet,又称为“快车下载工具”,是一款在中国广受欢迎的多线程下载管理软件。在早期互联网时代,由于带宽限制,用户需要高效的下载工具来提升文件下载速度,FlashGet便是其中的佼佼者。它支持BT、HTTP、FTP等...