`
lylyb
  • 浏览: 90486 次
  • 性别: Icon_minigender_1
  • 来自: 烟台
社区版块
存档分类
最新评论

HTTP文件下载Java编程

    博客分类:
  • JAVA
阅读更多
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();
}
}

分享到:
评论

相关推荐

    Java实现HTTP文件下载

    Java提供了一套全面的网络编程API,使得开发者能够轻松地实现HTTP文件下载等功能。通过理解URL的概念,掌握`java.net.URL`和`java.net.HttpURLConnection`类的使用,你将能够在自己的项目中实现这一关键功能。同时,...

    文件下载java版本

    在Java编程环境中,文件下载是常见的需求,尤其是在Web应用程序中。本知识点主要涉及如何使用Java实现文件下载功能,特别是结合多线程技术以及Struts框架的应用。以下将详细阐述相关概念和技术。 首先,Java文件...

    Java实现FTP批量大文件上传下载

    让我们设想这样一个情形--我们想写一个纯 Java 的从一个远程计算机上运行的 FTP 服务器上传下载文件的应用程序;我们还希望能够得到那些供下载的远程文件的基本文件信息,如文件名、数据或者文件大小等。尽管从头...

    JAVA Socket编程实现文件上传

    Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...

    java使用HttpClient通过url下载文件到本地

    在Java编程环境中,HttpClient库是Apache HTTP Components项目的一部分,它为开发者提供了强大的HTTP客户端功能,可以用来发送HTTP请求并接收响应。在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到...

    Java文件下载,Java文件下载中文乱码,Java通用文件下载

    在Java编程中,文件下载是常见的任务之一,特别是在构建Web应用程序时。Java文件下载涉及到将服务器上的文件传输到客户端,例如浏览器。这个过程可能会遇到一些问题,如中文乱码,这是由于字符编码不匹配导致的。...

    Java下载m3u8文件列表中的TS文件到本地工具类

    1. 一键批量下载:只需启动程序,即可自动遍历并下载M3U8文件列表中的全部TS片段,极大地提升了工作效率,省去手动逐个下载的繁琐过程。 2. 智能排序:根据M3U8文件的顺序逻辑,精确无误地将各个TS文件按序下载,...

    java+jsp 文件下载(服务器上的文件)

    总结起来,使用Java和JSP实现文件下载的过程包括:创建一个用户界面(如`downloadtool.jsp`)来触发下载请求,处理请求的服务器端程序(如`dodownloadtool.jsp`)设置正确的HTTP响应头并读取并发送文件内容。...

    java多线程URL方式下载单个大文件

    在Java编程中,多线程下载大文件是一种常见的优化策略,尤其对于网络资源如文件或图片的下载。这种策略能够利用多核处理器的优势,通过并发处理来提高下载速度。本篇将详细介绍如何使用Java实现基于URL的单个大文件...

    java访问https网址下载文件

    在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在网络应用开发中。HTTPS(HyperText Transfer Protocol Secure)是一种安全通信协议,用于确保数据在客户端和服务器之间的传输过程是加密的,保护了...

    Java应用程序转化成exe文件的N种方法

    ### Java应用程序转化成exe文件的多种方法:深入解析与实践指南 #### 引言 将Java应用程序转换为exe文件是跨平台开发中的一个重要环节,尤其是对于Windows用户而言,exe文件的执行无需安装Java运行环境,极大地...

    javaweb文件下载程序

    本程序聚焦于实现一个能够处理视频文件下载的Java类。以下将详细介绍涉及的关键知识点和步骤。 1. **HTTP响应与Content-Disposition** - 在HTTP协议中,服务器通过响应头来指示浏览器如何处理返回的数据。对于文件...

    java下载文件案例

    在Java编程语言中,文件下载是一项常见的任务,特别是在构建Web应用程序时。本案例将深入探讨如何使用Java实现文件下载功能,以及涉及的相关知识点。 首先,理解文件下载的基本流程至关重要。通常,用户通过Web...

    java访问https网址下载文件(含证书)

    在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...

    2022年用Java实现HTTP文件队列下载Java教程.docx

    【Java实现HTTP文件队列下载】教程 在2022年的互联网环境下,高效地下载大量分散的HTTP文件成为了一项必要的技能。本教程将详细讲解如何使用Java语言实现HTTP文件队列下载,以解决手动下载数百乃至数千个文件的难题...

    Java版Linux文件上传下载、windows本地文件上传下载

    在Java编程环境中,实现Linux与Windows之间的文件上传和下载是一项常见的任务,特别是在分布式系统和跨平台应用中。本文将深入探讨如何使用Java技术实现在Linux和Windows之间进行文件的互传,以及创建一个HTML界面来...

    Java实现批量下载并压缩文件.pptx.pptx

    1. **文件下载**:在Java中,文件下载通常基于网络I/O流,通过发送HTTP请求获取远程服务器上的文件。有两种常用的方式: - **HttpURLConnection**:这是Java标准库中的API,可以直接建立HTTP连接,设置请求头和参数...

    java实现Ftp批量下载文件及解压

    在Java编程环境中,FTP(File Transfer Protocol)是一个用于在计算机之间传输文件的标准协议。通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤...

    Java多个文件根据URL下载后打包zip导出.zip

    在Java编程中,有时我们需要从网络上下载多个文件并将其打包为一个压缩文件,例如ZIP格式,以便于存储或分发。这个过程涉及到文件I/O操作、网络请求以及压缩算法的使用。以下是对这个场景的详细说明: 1. **网络...

Global site tag (gtag.js) - Google Analytics