使用Java开发下载软件?

问题描述

我想使用Java开发一个下载软件,在linux下使用,用来下载http,ftp,迅雷,快车等资源,目前已经能够使用单线程下载这些资源,正在想办法实现多线程下载我的构想是用到读写XML,多线程等知识完成该程序,但是还有问题没有得到解决:1》每个线程都下载文件的一部分,那么这些线程是共有一个临时文件;还是生成多个临时文件来保存各自的那部分信息,最后再合并这些临时文件......如果真的是使用很多个临时文件,那100个线程岂不是要100个临时文件?能不能事先在磁盘上创建一个与下载文件大小相同的临时文件,然后所有的线程将下载的信息覆盖式的写入临时文件?这个思路可行吗?这个思路与磁盘缓存有关吗?2》需要一些文件校验吗?MD5?3》假如正在下载,突然用户强制结束进程,数据怎么处理?4》除了我介绍的上面外,还有哪些要考虑的啊?我分不多,但还是希望大家提供思路,不需提供代码!

解决方案

本帖最后由 xiaowang_wbj 于 2010-12-16 21:13:00 编辑
解决方案二:
先支持一下,有空再想!!
解决方案三:
3》假如正在下载,突然用户强制结束进程,数据怎么处理?支持断点下载,保存临时文件,如果用户强制结束是,下次启动时,就从已经下载处继续下载剩余
解决方案四:
回复2楼:但是在细节上,用户如果是暂停或者正常退出的话,程序肯定会保存这些断点信息到XMl以便下次继续下载,但是如果是杀死进程(或者结束进程的话),数据是不是被破坏了啊?能不能进程被杀后,还保留一个线程来处理断点信息啊?
解决方案五:
按照固定大小分包下载,下载下来后,记录起始地址和终止地址,通过CRC打包,分成多个文件或者合成一个文件都可以。下载完成后,根据每个包的起始地址和终止地址重新生成下载文件。
解决方案六:
该回复于2010-12-17 10:02:11被版主删除
解决方案七:
如果一个包没有下载完成,就中断了,那么下次就要重新下载这个包;如果要做的好点,也可以对这个包做断点下载。这样有点麻烦的。引用3楼xiaowang_wbj的回复:

回复2楼:但是在细节上,用户如果是暂停或者正常退出的话,程序肯定会保存这些断点信息到XMl以便下次继续下载,但是如果是杀死进程(或者结束进程的话),数据是不是被破坏了啊?能不能进程被杀后,还保留一个线程来处理断点信息啊?

解决方案八:
引用1楼buqitianxie的回复:

先支持一下,有空再想!!

!
解决方案九:
支持加速下载,和限速下载否?断点下载。BT下载。资源搜索。文件病毒扫描。
解决方案十:
该回复于2010-12-24 12:58:32被版主删除
解决方案十一:
该回复于2010-12-24 12:59:45被版主删除
解决方案十二:
我最近也在做多线程多任务的下载工具,也做到了单线程多任务!后面打算加成多线程的!
解决方案十三:
我也正在学习,期待楼主有个好的学习资料

时间: 2024-12-21 11:58:47

使用Java开发下载软件?的相关文章

使用java开发结算软件

问题描述 请问去哪可以找到,java开发结算软件或奖金计算软件的项目介绍.懂行的再详细说两句.或大家推荐两个网址.谢谢~ 解决方案 解决方案二:发错地方了~解决方案三:顶一下解决方案四:恩知道了

用Java设计下载软件

"网络蚂蚁".Falshget 等许多多线程下载软件都是网友的必备工具,利用这些工具可以快速从服务器上下载比较大的文件,这些工具的工作特性是把服务器端的文件分成几个段,每个段分别.同时进行下载.编写这类程序,第一.必须对HTTP协议有较为充分的了解:第二.有效使用多线程编程手段在软件上实现. HTTP 协议的简介 HTTP协议是一种超文本传输协议(Hypertext Transfer Protocol),工作于网络应用层,自1990年起广泛应用于WWW 的全球信息服务,HTTP协议的详

java开发的程序怎样打成exe安装包

问题描述 有个需求,java开发的软件,怎样打包成exe让用户安装呢?注:这个软件针对普通用户(不懂技术的),所以我不想让用户在运行我的程序之前还得先安装JRE,我怎样把jre也一起打包进去,让用户安装的时候界面操作也非常友好?请教大家了! 问题补充:AngelAndAngel 写道 解决方案 搞定没啊啊?解决方案二:我忘记哪里下载了,你google or baidu一下看看.解决方案三:客气了,自己去下载最新版的工具.英文不好的话,我有汉化版本,但是公司有点限速,不好传.不过不大 只有3M解决

软件开发-JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧

问题描述 JAVA在下载的时候报错,各位大神路过顺便帮忙看下吧 ClientAbortException: java.io.IOException at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:369) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368) at org.apache.catalina.co

工具-有没有 快速搭建,配置 java开发环境的软件

问题描述 有没有 快速搭建,配置 java开发环境的软件 每次换了系统,换了电脑,换了工作环境都要重头装一遍开发工具,配置开发环境,不知道有没有快捷的软件省去这些重复的工作 解决方案 你完全可以用Java_home啊 用不了多少时间 解决方案二: 没有吧,话说用了这么久还觉得配环境麻烦么?没有多少时间啊 解决方案三: JDK与IDE使用绿色版,配置一下路径都是很快的 解决方案四: 偷懒的方式,你可以把环境装在非系统盘,这样换系统的话,可能不需要重新安装环境了.(只格式化系统盘,没问题) 换电脑的

提升团队研发效能利器,《阿里巴巴Java开发手册》插件全球首发(附插件下载地址)

<阿里巴巴Java开发手册>于2017年2月9日首次公布,瞬间引起全民代码规范的热潮.2017年9月底,阿里巴巴集团发布了<阿里巴巴Java开发手册>PDF终极版,2017年10月14日,在2017杭州云栖大会上,规约插件全球首发. 手册与插件的下载地址在此: <阿里巴巴Java开发手册>(终极版)下载地址 Java规约插件下载地址 插件全球首发仪式 经过247天的研发,阿里巴巴于10月14日上午9:00在杭州云栖大会<研发效能峰会>上,正式发布<阿里

软件-java程序设计 下载 进度条显示

问题描述 java程序设计 下载 进度条显示 当我在一个页面点击下载下载软件时,能否将名称和进度条显示在另一个页面 我需要用java实现程序设计,如果可以的话麻烦贴出代码,在百度上看了很多, 没有找到可以使用的,谢谢了 解决方案 天生java做activex也很困难.不如用C++ 解决方案二: 如果是基于浏览器的话,不可以实现.因为服务器端程序不能直接控制浏览器读写文件,也不能获知下载进度. 除非你在客户端部署程序,比如activex控件. 解决方案三: 迅雷就是我说的,在客户端部署程序实现的.

110期:阿里Java开发手册发布,年度精选资料限时免费下载

本期头条   AliSQL开源Sequence Engine:单调递增的唯一值,是在持久化数据库系统中常见的需求,无论是单节点中的业务主键,还是分布式系统中的全局唯一值,亦或是多系统中的幂等控制,并通过引擎的设计方法,尽可能的兼容其他数据库的使用方法,简化获取序列值复杂度.点我查看,让情人节更有范 •[Java编码规范]<阿里巴巴Java开发手册(正式版)>发布! • 开年大礼!阿里珍贵技术资料限时免费下载 •[在线峰会]2017红包背后的技术秘密 • 视频技术大讲堂开讲啦:赶快报名!   技

java-88年新人准备转行入IT,学JAVA还是.net软件开发呢?(数学,外语底子很差)

问题描述 88年新人准备转行入IT,学JAVA还是.net软件开发呢?(数学,外语底子很差) 88年新人准备转行入IT,学JAVA还是.net软件开发呢?(数学,外语底子很差)原本想去学网管的不过后来还是觉得走开发好点吧!本人体育系毕业文化底子差~现在想学请问走JAVA还是NET好?那个入门撒比较容易初期对外语,数学要求不高 解决方案 另外补充一句,88年也不是很年轻了,底子差不要紧,但是如果不是非常热爱软件开发这行的话,还是建议不要入这行了. 而且你也可以考虑下移动开发(iOS和Android