`

java以流的方式上传文件

    博客分类:
  • j2se
阅读更多

因为byte数组最大存储值不超过64M,所以当一个文件大于60M 的时候,需要分开几个流操作。以下程序就可以写入任意大小的文件。这个程序应用了FileInputStream类的方法如下:
read(byte[] b,int off,int len)
把特定位置的流内容读入数组,已经读入byte[]数组的内容,会在流文件中删除。
程序运行的结果会产生一个新文件。

package com.cz.test1;

import java.io.*;

public class IoUtill {

	public static void main(String[] args) throws IOException {

		// 创建两个文件
		File inFile = new File("F:\\1.bmp");

		File outFile = new File("E:\\2.jpg");

		// 最大的流为60Mb,当文件的容量大于60Mb的时候便分开流

		final int MAX_BYTE = 60000000;

		long streamTotal = 0; // 接受流的容量

		int streamNum = 0; // 流需要分开的数量

		int leave = 0; // 文件剩下的字符数

		byte[] inOutb; // byte数组接受文件的数据

		// 创建流文件读入与写出类

		FileInputStream inStream = new FileInputStream(inFile);

		FileOutputStream outStream = new FileOutputStream(outFile);

		// 通过available方法取得流的最大字符数

		streamTotal = inStream.available();

		// 取得流文件需要分开的数量

		streamNum = (int) Math.floor(streamTotal / MAX_BYTE);

		// 分开文件之后,剩余的数量

		leave = (int) streamTotal % MAX_BYTE;

		// 文件的容量大于60Mb时进入循环

		if (streamNum > 0) {

			for (int i = 0; i < streamNum; ++i) {

				inOutb = new byte[MAX_BYTE];

				// 读入流,保存在byte数组

				inStream.read(inOutb, 0, MAX_BYTE);

				outStream.write(inOutb); // 写出流

				outStream.flush(); // 更新写出的结果

			}

		}

		// 写出剩下的流数据

		inOutb = new byte[leave];

		inStream.read(inOutb, 0, leave);

		outStream.write(inOutb);

		outStream.flush();

		inStream.close();

		outStream.close();

	}

}

 

分享到:
评论

相关推荐

    Java以流的形式上传文件

    ### Java以流的形式上传文件 在现代软件开发中,文件上传是常见的功能之一,尤其是在Web应用中。本文将详细介绍如何使用Java通过流的形式实现文件上传,并解析提供的代码示例。 #### 流的概念 在Java中,流...

    java IO流方式上传下载文件,源代码

    Java IO流是Java平台中处理输入输出操作的核心机制,它为数据传输提供了高效且灵活的方式。在Java中,文件的上传和下载通常涉及到客户端与服务器之间的数据交换,而这正是IO流大显身手的地方。本篇文章将深入探讨...

    java实现上传文件类型检测过程解析

    Java 实现上传文件类型检测过程解析是指在进行文件上传时,对上传文件的格式进行控制,以防止黑客将病毒脚本上传。单纯的将文件名的类型进行截取的方式非常容易遭到破解,上传者只需要将病毒改换文件名便可以完成...

    java实现文件批量上传

    `javax.servlet.http.Part`接口提供了处理上传文件的方法。通常,我们使用Servlet 3.0及以上版本的API来处理这部分工作,因为它们对文件上传提供了更好的支持。 在EXT中,我们可以创建一个包含文件上传控件的表单。...

    java文件异步上传

    Java文件异步上传是一种在Web应用中常见的技术,它允许用户在不阻塞浏览器界面的情况下上传文件。这种技术尤其在处理大文件或者批量上传时,能够显著提升用户体验,因为它们不会冻结页面,允许用户继续与应用程序...

    java上传文件jar

    在Java开发中,上传文件是一项常见的任务,尤其是在构建Web应用程序时。标题提到的"java上传文件jar"实际上指的是两个关键的Java库,它们是Apache Commons IO和Apache Commons FileUpload。这两个库提供了强大的文件...

    JAVA文件I/O流上传类

    JAVA文件I/O流上传类 MyFileSeparate 文件上传

    java读取图片文件流

    java读取本地图片文件获取流!java读取本地图片文件获取流!

    java 监听本地文件自动上传服务器

    本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    java 上传文件,实时获取上传进度.

    - 文件大小限制:为了避免过大文件导致服务器资源耗尽,应设置上传文件大小的最大限制。 - 文件类型检查:确保上传的文件类型符合预期,防止恶意文件上传。 - 文件重命名:上传后的文件应进行重命名,防止路径...

    java上传文件接口调用源码案例

    在Java编程中,文件上传是常见的任务之一,特别是...通过这个"java上传文件接口调用源码案例",我们可以学习到如何在Java环境中实现文件上传功能,这在开发Web应用、移动应用或者后端服务时都是一项基础且重要的技能。

    基于Java文件输入输出流实现文件上传下载功能

    本文将详细介绍基于Java文件输入输出流实现文件上传下载功能的相关知识点,包括文件上传和下载的实现原理、Java文件输入输出流的基础操作、Servlet的使用等。 文件上传 文件上传是指客户端将文件传输到服务器端的...

    通过java向fastdfs上传文件实例

    `upload_file1`方法用于上传文件,第一个参数是本地文件路径,第二个参数是文件扩展名,第三个参数通常为null,表示不进行文件元数据的设置。 上传成功后,FastDFS会返回一个全局唯一标识符(Global ID),这个ID由...

    Java实现FTP文件上传和下载

    5. **文件上传**:使用`storeFile()`方法上传文件。你需要提供远程文件路径和一个InputStream,这个InputStream通常来自本地文件。 ```java File localFile = new File("C:\\local\\file.txt"); InputStream in = ...

    Java实现文件与图片的上传下载---三种方式

    在Java开发中,文件和图片的上传下载是常见的功能需求,尤其在Web应用中更为重要。本篇文章将详细探讨三种不同的实现方式,分别是使用JSP+Servlet、SmartUpload库以及Apache的FileUpload组件。 首先,我们来看第一...

    Java实现文件的上传

    - **struts.properties**:可能需要设置`struts.multipart.saveDir`属性,指定服务器上保存上传文件的临时目录。 5. **创建上传表单** 在HTML页面中,使用`&lt;input type="file"&gt;`标签创建文件选择字段。`enctype=...

    Java对Samba进行上传与下载文件-jcifs

    5. **关闭连接**:完成操作后,记得关闭打开的流并断开连接,以释放资源。 在实际应用中,"sambatest"可能是一个包含示例代码的项目,包括了具体的Samba文件上传和下载功能。这个项目可以作为学习和参考,帮助理解...

    Java(Servlet)上传文件的demo

    本示例"Java(Servlet)上传文件的demo"提供了一个简单的文件上传功能,适用于初学者理解和实践。以下是对这个demo的详细解析: 1. **Servlet基本概念**: Servlet是一个Java类,遵循Servlet API规范,它扩展了...

    java文件上传源码

    一旦Servlet获取到上传的文件流,它会创建一个新的文件对象,然后使用`FileOutputStream`将文件流写入到服务器指定的目录。 在上传完成后,可能会有错误处理和日志记录,确保上传过程的可靠性。此外,安全性也是一...

    java IO流实例,包括文件的读写、上传和下载

    本实例主要探讨了如何使用Java IO流进行文件的读写、上传和下载,同时也涵盖了处理文本数据和音频文件等内容。 一、文件的读写 Java中的File类是文件操作的基础,它提供了创建、删除、重命名等基本功能。而IO流则...

Global site tag (gtag.js) - Google Analytics