`
wing123
  • 浏览: 798887 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用apache的IOUtils类完成文件下载(FileDownload)程序

    博客分类:
  • Java
阅读更多

 

package com.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.io.IOUtils;
import org.junit.BeforeClass;
import org.junit.Test;

public class FileItem {

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    }

    @Test
    public void test() throws FileNotFoundException {
	// 模拟从服务器上下载文件
	String filename = "D:\\ufsoft\\nchome_huaxin\\modules\\hxsale\\file\\termb.lic";
	byte[] data = getFileByteArray(filename);
	if (null == data)
	    throw new FileNotFoundException("文件没有找到!");

	// 模拟写入本地磁盘
	String filename2 = "c:\\termb.lic";
	createNewFile(filename2, data);
    }

    /**
     * 写入本地磁盘
     * 
     * @param filename
     * @param data
     */
    private void createNewFile(String filename, byte[] data) {
	File file = new File(filename);
	OutputStream output = null;
	try {
	    if (!file.exists())
		file.createNewFile();
	    output = new FileOutputStream(file);
	    IOUtils.write(data, output);
	} catch (IOException e) {
	    e.printStackTrace();
	} finally {
	    if (null != output) {
		try {
		    output.close();
		} catch (IOException e1) {
		    e1.printStackTrace();
		}
		output = null;
	    }
	}

    }

    /**
     * 下载文件
     * 
     * @param filename
     * @return
     */
    private byte[] getFileByteArray(String filename) {
	File file = new File(filename);
	InputStream input = null;
	byte[] data = null;
	try {
	    if (!file.exists())
		return null;

	    input = new FileInputStream(file);
	    data = IOUtils.toByteArray(input);
	} catch (IOException e) {
	    e.printStackTrace();
	} finally {
	    if (null != input) {
		try {
		    input.close();
		} catch (IOException e1) {
		    e1.printStackTrace();
		}
		input = null;
	    }
	}
	return data;
    }

}

 

 

 

 

分享到:
评论

相关推荐

    apache工具类

    Apache Commons 是一个非常著名的开源...通过正确使用Apache Commons提供的工具类,开发者可以编写出更加简洁、高效的Java代码。在实际项目中,我们可以根据需求选择合适的工具类来处理特定的问题,从而提高开发效率。

    IOUtils jar

    Apache Commons IOUtils是Apache Commons项目中的一个核心库,主要提供了大量的IO操作工具类,极大地简化了Java输入/输出流的处理工作。本篇文章将深入探讨IOUtils的主要功能、使用方法以及在实际开发中的应用。 ...

    IOUtils组件,搭配本文项目专用

    本教程将深入探讨如何利用IOUtils来处理类路径下的资源文件,以及其在实际项目中的应用。 首先,让我们关注`commons-io-2.6.jar`这个文件。它是Apache Commons IO项目的最新版本,包含了IOUtils类和其他许多实用的I...

    apache.commons全套jar包下载

    它提供了一系列方便实用的类和方法,比如FileUtils用于文件操作,IOUtils用于流的读写和复制,以及EndianUtils用于处理字节序问题。 2. Apache Commons CLI: 命令行接口(CLI)工具包简化了命令行参数解析。它可以...

    apache实现ftp上传

    除了上传文件外,我们还可以使用 FTPClient 类下载文件。在示例代码中,我们可以看到如何使用 FTPClient 类下载文件。首先,我们需要连接到 FTP 服务器,然后登录到 FTP 服务器。接着,我们可以使用 retrieveFile ...

    IOUtils(commons-io-1.4.jar、commons-fileupload-1.2.1.jar等等)

    - **IOUtils**:这是Apache Commons IO中的核心类,提供了一系列静态方法,用于处理字节流和字符流的读写、复制、关闭等操作。例如,`IOUtils.copy()`方法可以方便地在不同流之间复制数据,`IOUtils.closeQuietly()...

    2018年org.apache.commons.io jar包

    项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件

    Delphi中,如何获得文件大小

    此外,如果你需要更详细的文件信息,例如文件创建日期、修改日期等,可以使用`TFileInfo`类。首先创建一个`TFileInfo`对象,然后调用其`GetSize`方法: ```delphi var FileInfo: TFileInfo; FileSize: Int64; ...

    Servelt 中引用IOUtils方法报错的解决办法

    1. **依赖缺失**:在Servlet项目中,如果缺少Apache Commons IO库的依赖,那么在尝试使用`IOUtils`时会抛出`NoClassDefFoundError`。确保你的Maven或Gradle构建文件中包含了正确的依赖。对于Maven,添加如下依赖: ...

    Spring文件上传和下载所需的jar包.rar

    在Spring框架中,文件上传和下载是常见的功能需求,尤其在构建Web应用程序时。为了实现这一功能,开发者通常会依赖一些外部库,如Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件处理能力...

    jsp文件上传所需common包

    在开发Java Web应用程序时,尤其是使用JSP(JavaServer Pages)技术进行动态网页设计时,文件上传功能是一项常见的需求。Apache Commons项目提供了一系列实用工具类库,极大地简化了这一过程,其中“jsp文件上传所需...

    精讲RestTemplate文件上传下载与大文件流式下载.docx

    根据提供的文档标题、描述、标签以及部分内容,本文将详细介绍如何使用Spring框架中的`RestTemplate`进行文件上传、普通文件下载及大文件的流式下载。 ### 一、文件上传 在进行文件上传时,通常涉及到以下几个步骤...

    java后台批量下载文件并压缩成zip下载的方法

    首先,需要在js中获取文件列表,然后使用ajax请求将文件列表发送到后台,最后在后台中使用zip压缩流来实现批量下载文件并压缩成zip下载。 ```javascript function doQueryPic() { var picsDate = $("#picsDate")....

    Apache commons-io-2.5.jar

    1. **IOUtils**: IOUtils是Apache Commons IO中的核心类之一,它提供了大量静态方法,用于处理各种输入/输出流。例如,你可以使用IOUtils.copy()方法轻松地将一个输入流的内容复制到一个输出流,或者使用IOUtils....

    FileUtils java web 文件上传下载工具

    后端Java Web应用需要解析上传的文件,这通常可以通过Servlet API或者第三方库如Apache Commons FileUpload来完成。`FileUtils`可以帮助我们轻松地将接收到的文件保存到服务器的指定位置,例如: ```java import ...

    struts2文件上传下载

    例如,可以使用Apache POI库来生成Excel文件,或者使用OpenCSV库来生成CSV文件。生成文件后,可以调用上面提到的下载方法来提供下载。 总的来说,"struts2文件上传下载"涵盖了Web开发中的基础功能,对于任何需要...

    apache-commons所有jar包

    2. **Commons IO**: 专注于文件输入输出相关的操作,提供了一些方便的类和方法,如 FileUtils、IOUtils、FileFilter 等。 3. **Commons Collections**: 为 Java 集合框架提供了扩展,包括各种集合操作、转换和工厂...

    apache commons-compress 之tar压缩文件夹示例

    在本示例中,我们将深入探讨如何使用Apache Commons Compress库来创建tar压缩文件,特别是针对文件夹的操作。`TarArchiveEntry`是该库中的一个重要类,它代表了tar归档中的一个条目或条目集合。 首先,我们需要理解...

    org.apache.commons

    1. **IO**: Apache Commons IO 提供了大量与输入/输出流相关的实用工具类,如文件操作、流处理、数据转换等。例如,`FileUtils` 类提供了方便的文件操作方法,如复制、删除、移动等;`IOUtils` 类则提供了读写流的...

    Apache Commons工具集

    1. **IO**: Apache Commons IO 提供了大量与输入/输出流相关的辅助类,如文件操作、流处理、字符编码转换等。例如,`FileUtils` 类提供了方便的文件操作方法,如复制、移动、删除文件;`IOUtils` 可以用于读写流并...

Global site tag (gtag.js) - Google Analytics