- 浏览: 90486 次
- 性别:
- 来自: 烟台
最新评论
-
daxiaoli123:
1 http://sourceforge.net/projec ...
GCJ让Java程序脱离jre执行 -
zhangtongysu:
楼主 ,那个下载 怎么回事啊。
利用Ant和Eclipse有效地提高部署工作效率
import java.io.RandomAccessFile;
import java.io.File;
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.ConnectException;
import java.net.URL;
import java.lang.Runnable;
import java.lang.Thread;
import java.util.Date;
public class TestUpDown2 implements Runnable {
private HttpURLConnection connection;//存储连接
private int downsize = -1;//下载文件大小,初始值为-1
private int downed = 0;//文加已下载大小,初始值为0
private RandomAccessFile savefile;//记录下载信息存储文件
private URL fileurl;//记录要下载文件的地址
private DataInputStream fileStream;//记录下载的数据流
public TestUpDown2() {
try {
/*开始创建下载的存储文件,并初始化值*/
File tempfileobject = new File("C:\\200504091iis51.rar");
if (!tempfileobject.exists()) {
/*文件不存在则建立*/
tempfileobject.createNewFile();
}
savefile = new RandomAccessFile(tempfileobject, "rw");
/*建立连接*/
fileurl = new URL(
"http://localhost:9080/web_services_serverClient/sample/FileServiceProxy/200504091iis51.rar");
connection = (HttpURLConnection) fileurl.openConnection();
connection.setRequestProperty("Range", "byte=" + this.downed + "-");
this.downsize = connection.getContentLength();
//System.out.println(connection.getContentLength());
new Thread(this).start();
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("构建器错误");
System.exit(0);
}
}
public void run() {
/*开始下载文件,以下测试非断点续传,下载的文件存在问题*/
try {
System.out.println("begin!");
Date begintime = new Date();
begintime.setTime(new Date().getTime());
byte[] filebyte;
int onecelen;
//System.out.println(this.connection.getInputStream().getClass().getName());
this.fileStream = new DataInputStream(new BufferedInputStream(
this.connection.getInputStream()));
System.out.println("size = " + this.downsize);
while (this.downsize != this.downed) {
if (this.downsize - this.downed > 262144) {//设置为最大256KB的缓存
filebyte = new byte[262144];
onecelen = 262144;
} else {
filebyte = new byte[this.downsize - this.downed];
onecelen = this.downsize - this.downed;
}
onecelen = this.fileStream.read(filebyte, 0, onecelen);
this.savefile.write(filebyte, 0, onecelen);
this.downed += onecelen;
System.out.println(this.downed);
}
this.savefile.close();
System.out.println("end!");
System.out.println(begintime.getTime());
System.out.println(new Date().getTime());
System.out.println(begintime.getTime() - new Date().getTime());
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("run()方法有问题!");
}
}
public static void main(String[] src) throws Exception {
new TestUpDown2();
}
}
import java.io.File;
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.ConnectException;
import java.net.URL;
import java.lang.Runnable;
import java.lang.Thread;
import java.util.Date;
public class TestUpDown2 implements Runnable {
private HttpURLConnection connection;//存储连接
private int downsize = -1;//下载文件大小,初始值为-1
private int downed = 0;//文加已下载大小,初始值为0
private RandomAccessFile savefile;//记录下载信息存储文件
private URL fileurl;//记录要下载文件的地址
private DataInputStream fileStream;//记录下载的数据流
public TestUpDown2() {
try {
/*开始创建下载的存储文件,并初始化值*/
File tempfileobject = new File("C:\\200504091iis51.rar");
if (!tempfileobject.exists()) {
/*文件不存在则建立*/
tempfileobject.createNewFile();
}
savefile = new RandomAccessFile(tempfileobject, "rw");
/*建立连接*/
fileurl = new URL(
"http://localhost:9080/web_services_serverClient/sample/FileServiceProxy/200504091iis51.rar");
connection = (HttpURLConnection) fileurl.openConnection();
connection.setRequestProperty("Range", "byte=" + this.downed + "-");
this.downsize = connection.getContentLength();
//System.out.println(connection.getContentLength());
new Thread(this).start();
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("构建器错误");
System.exit(0);
}
}
public void run() {
/*开始下载文件,以下测试非断点续传,下载的文件存在问题*/
try {
System.out.println("begin!");
Date begintime = new Date();
begintime.setTime(new Date().getTime());
byte[] filebyte;
int onecelen;
//System.out.println(this.connection.getInputStream().getClass().getName());
this.fileStream = new DataInputStream(new BufferedInputStream(
this.connection.getInputStream()));
System.out.println("size = " + this.downsize);
while (this.downsize != this.downed) {
if (this.downsize - this.downed > 262144) {//设置为最大256KB的缓存
filebyte = new byte[262144];
onecelen = 262144;
} else {
filebyte = new byte[this.downsize - this.downed];
onecelen = this.downsize - this.downed;
}
onecelen = this.fileStream.read(filebyte, 0, onecelen);
this.savefile.write(filebyte, 0, onecelen);
this.downed += onecelen;
System.out.println(this.downed);
}
this.savefile.close();
System.out.println("end!");
System.out.println(begintime.getTime());
System.out.println(new Date().getTime());
System.out.println(begintime.getTime() - new Date().getTime());
} catch (Exception e) {
System.out.println(e.toString());
System.out.println("run()方法有问题!");
}
}
public static void main(String[] src) throws Exception {
new TestUpDown2();
}
}
发表评论
-
调试MAVEN项目appfuse-light-struts2-spring-jdbc-1.8的问题
2008-03-07 16:31 2285出现问题: Project appfuse-light-str ... -
MVC设计思想
2008-03-01 22:13 2144MVC英文即Model-View-Controll ... -
当前Java软件开发中几种认识误区(转)
2008-03-01 22:11 970软件的生命性 软件是有生命的,这可能是老调重弹了,但是因 ... -
给servlet写单元测试的总结(转)
2008-02-19 11:19 3546servlet的测试一般来说需要容器的支持,不是像通常的jav ... -
取得参数的几中形式
2008-02-18 12:54 882java -DSTOP.PORT=8080 -DSTOP.KE ... -
正则表达式
2008-02-18 12:34 900目录 本文目标 如何使 ... -
关于Java中类在构造对象时的初始化步骤详解
2008-02-18 12:17 2100很多人在学习Java的过程 ... -
Java连接各种数据库的实例
2008-02-18 12:13 1166一、jsp连接Oracle8/8i/9i数据库(用thin模式 ... -
为什么要使用接口编程(转)
2008-02-17 21:42 1285看了接口编程这篇文章, ... -
JAVA中浅复制与深复制
2008-02-17 21:38 7211.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
短信网关发送部分源代码
2008-02-17 21:37 1216package com.etonenet.iiie.sdk; ... -
appfuse结合eclipse开发流程
2008-02-17 21:33 1220Appfuse应用的核心在于ant ... -
使用Antlr和JfreeChart实现项目源代码行数计算图表
2008-02-17 21:30 1541Antlr的功能在我的其他文章里提到了就不多说了,JFreeC ... -
使用ANT协助开发java项目
2008-02-17 21:29 896ANT是Apache的开源项目,目前在java的项目开发中被广 ... -
利用Ant和Eclipse有效地提高部署工作效率
2008-02-17 21:26 1265本文主要介绍 Ant 在多 ... -
使用开源软件 Mantis 实施缺陷跟踪的成功实践
2008-02-17 21:22 1699内容摘要 中国开源 注:当前Mantis稳定发布版本为1.0. ... -
开源缺陷跟踪系统mantis安装指南
2008-02-17 21:14 18881. 简介 mantis(螳螂)是一个基于php/MySQL/ ... -
无所不能的“蚂蚁”-Ant(转)
2008-02-17 21:12 3233说他无所不能,好像有点夸张,但是用过Ant之后,感觉真的是只有 ... -
Java华为面试题
2008-02-17 21:08 1470第一部分:选择题 QUESTION NO: 1 1、publi ... -
java中读取Properties文件
2008-02-17 21:06 907ResourceBundle resourceBundle = ...
相关推荐
Java提供了一套全面的网络编程API,使得开发者能够轻松地实现HTTP文件下载等功能。通过理解URL的概念,掌握`java.net.URL`和`java.net.HttpURLConnection`类的使用,你将能够在自己的项目中实现这一关键功能。同时,...
在Java编程环境中,文件下载是常见的需求,尤其是在Web应用程序中。本知识点主要涉及如何使用Java实现文件下载功能,特别是结合多线程技术以及Struts框架的应用。以下将详细阐述相关概念和技术。 首先,Java文件...
让我们设想这样一个情形--我们想写一个纯 Java 的从一个远程计算机上运行的 FTP 服务器上传下载文件的应用程序;我们还希望能够得到那些供下载的远程文件的基本文件信息,如文件名、数据或者文件大小等。尽管从头...
Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...
在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...
在Java编程中,文件下载是常见的任务之一,特别是在构建Web应用程序时。Java文件下载涉及到将服务器上的文件传输到客户端,例如浏览器。这个过程可能会遇到一些问题,如中文乱码,这是由于字符编码不匹配导致的。...
1. 一键批量下载:只需启动程序,即可自动遍历并下载M3U8文件列表中的全部TS片段,极大地提升了工作效率,省去手动逐个下载的繁琐过程。 2. 智能排序:根据M3U8文件的顺序逻辑,精确无误地将各个TS文件按序下载,...
总结起来,使用Java和JSP实现文件下载的过程包括:创建一个用户界面(如`downloadtool.jsp`)来触发下载请求,处理请求的服务器端程序(如`dodownloadtool.jsp`)设置正确的HTTP响应头并读取并发送文件内容。...
在Java编程中,多线程下载大文件是一种常见的优化策略,尤其对于网络资源如文件或图片的下载。这种策略能够利用多核处理器的优势,通过并发处理来提高下载速度。本篇将详细介绍如何使用Java实现基于URL的单个大文件...
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在网络应用开发中。HTTPS(HyperText Transfer Protocol Secure)是一种安全通信协议,用于确保数据在客户端和服务器之间的传输过程是加密的,保护了...
### Java应用程序转化成exe文件的多种方法:深入解析与实践指南 #### 引言 将Java应用程序转换为exe文件是跨平台开发中的一个重要环节,尤其是对于Windows用户而言,exe文件的执行无需安装Java运行环境,极大地...
本程序聚焦于实现一个能够处理视频文件下载的Java类。以下将详细介绍涉及的关键知识点和步骤。 1. **HTTP响应与Content-Disposition** - 在HTTP协议中,服务器通过响应头来指示浏览器如何处理返回的数据。对于文件...
在Java编程语言中,文件下载是一项常见的任务,特别是在构建Web应用程序时。本案例将深入探讨如何使用Java实现文件下载功能,以及涉及的相关知识点。 首先,理解文件下载的基本流程至关重要。通常,用户通过Web...
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...
【Java实现HTTP文件队列下载】教程 在2022年的互联网环境下,高效地下载大量分散的HTTP文件成为了一项必要的技能。本教程将详细讲解如何使用Java语言实现HTTP文件队列下载,以解决手动下载数百乃至数千个文件的难题...
在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...
1. **文件下载**:在Java中,文件下载通常基于网络I/O流,通过发送HTTP请求获取远程服务器上的文件。有两种常用的方式: - **HttpURLConnection**:这是Java标准库中的API,可以直接建立HTTP连接,设置请求头和参数...
在Java编程环境中,FTP(File Transfer Protocol)是一个用于在计算机之间传输文件的标准协议。通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤...
在Java编程中,有时我们需要从网络上下载多个文件并将其打包为一个压缩文件,例如ZIP格式,以便于存储或分发。这个过程涉及到文件I/O操作、网络请求以及压缩算法的使用。以下是对这个场景的详细说明: 1. **网络...