`

java IO分割流和合并流

阅读更多
package com.io.file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;

/**
 * @类功能说明: 将一个MP3文件切割成1M大小的多等分,然后在合并一起
 * @类修改者:
 * @修改日期:
 * @修改说明:
 * @作者:matieli
 * @创建时间:Apr 25, 2012 9:28:40 PM
 * @版本:V1.0
 * 
 */
public class SplitFile {
	public static void main(String[] args) throws IOException {
		// splitMp3();
		SequenceMp3();
	}

	/**
	 * @方法功能说明:
	 * @修改者名字:matieli
	 * @修改时间:Apr 25, 2012 9:48:37 PM
	 * @修改内容:
	 * @参数:@throws IOException
	 * @return:void
	 * @throws
	 */
	public static void SequenceMp3() throws IOException {
		// 切割完成后,在合并流
		File f = new File("splitfiles");
		File[] fs = f.listFiles();// 获得文件的长度
		ArrayList<FileInputStream> list = new ArrayList<FileInputStream>();
		for (int i = 0; i < fs.length; i++) {
			list.add(new FileInputStream(fs[i]));// 遍历文件对象数组
		}
		final Iterator<FileInputStream> it = list.iterator();
		// 使用匿名内部类,创建枚举
		Enumeration<FileInputStream> en = new Enumeration<FileInputStream>() {

			public boolean hasMoreElements() {
				return it.hasNext();
			}

			public FileInputStream nextElement() {
				return it.next();
			}

		};
		// 创建合并流
		SequenceInputStream sis = new SequenceInputStream(en);

		// 指定合并流输出到哪里
		FileOutputStream fos = new FileOutputStream("splitfiles//2.mp3");

		byte[] b = new byte[1024 * 1024];
		int len = 0;
		while ((len = sis.read(b)) != -1) {
			fos.write(b, 0, len);
			fos.flush();
		}
		fos.close();
		sis.close();

	}

	/**
	 * @方法功能说明:把目标文件切成1M大小的不等份,最后一个剩下多少就放多少
	 * @修改者名字:matieli
	 * @修改时间:Apr 25, 2012 9:47:42 PM
	 * @修改内容:
	 * @参数:@throws IOException
	 * @return:void
	 * @throws
	 */
	public static void splitMp3() throws IOException {
		FileInputStream fis = new FileInputStream("1.mp3");
		FileOutputStream fos = null;
		byte[] b = new byte[1024 * 1024];// 定义一个1M大小的数组
		int len = 0;
		int count = 0;
		while ((len = fis.read(b)) != -1) {
			fos = new FileOutputStream("splitfiles//" + (count++) + ".part");
			fos.write(b, 0, len);
			fos.close();
		}
		fis.close();
	}
}
分享到:
评论

相关推荐

    java文件分割合并

    在这个场景下,Java的IO(Input/Output)库提供了丰富的功能来实现文件的读取、写入和流控制,从而实现文件的分割与合并。本文将详细介绍如何使用Java IO来完成这两个任务。 首先,我们来看一下文件分割的过程。...

    javaio流电子书整理面试必考io流帮助你入职阿里腾讯

    4. **文件分割与合并**:通过读取和写入操作,可以实现文件的分割和合并。 **六、字符的编码** 在处理文本数据时,字符编码是不可忽视的一环。Unicode是一种广泛使用的字符集,支持世界上几乎所有的字符。ISO-8859...

    java 文件分割合并源码

    java 文件分割合并源码,实现了文件的分割与合并,对Java IO 的学习有很大帮助。

    JAVA文件分割合并器

    【JAVA文件分割合并器】是一种基于Java编程语言开发的实用工具,主要功能是对大文件进行高效地分割和合并。在日常工作中,我们可能遇到需要处理大量数据或传输超大文件的情况,这时文件分割和合并的功能就显得尤为...

    14-Java操作Linux命令分割合并文本文件1

    标题中的“14-Java操作Linux命令分割合并文本文件1”指的是使用Java编程语言来执行Linux命令,以实现对文本文件的分割和合并操作。在处理大文件时,由于内存限制,不能一次性将整个文件读入,因此需要采用分块处理的...

    将大文件分割及合并java源码

    总的来说,这个`SplitImageUtil.java`源码提供了大文件分割和合并的功能,对于开发者来说,它是一个学习和参考的实例,帮助理解如何在Java中高效地处理大文件。通过深入分析和理解这段代码,开发者可以将其应用于...

    java文件分割压缩

    3. **文件分割**:在Java中,可以通过计算每个部分的起始和结束偏移量,然后使用`skip()`方法跳过不需要的部分,`read()`方法读取需要的数据到新的文件。这个过程可能需要循环执行,直到整个文件被分割完毕。 4. **...

    java课程设计(IO流+gui界面)--文件切割合并器--简单易懂注释详细

    在这个“文件切割合并器”的项目中,我们主要关注的是Java的IO流和图形用户界面(GUI)的应用。 IO流是Java中处理输入输出的核心机制,包括字节流和字符流两大类,分别处理二进制数据和文本数据。在这个项目中,...

    Java实现文件分割与合并

    ### Java实现文件分割与合并 #### 一、概述 本文将详细介绍如何使用Java语言实现文件的分割与合并功能。此技术对于数据传输、备份或处理大量数据时非常有用。通过分割大文件为较小的部分,可以有效地减少单个文件...

    java PDF分割与合并源代码.zip

    在Java中处理PDF文件,尤其是进行PDF的分割和合并,通常需要借助特定的库,例如iText或Apache PDFBox。本压缩包文件“java PDF分割与合并源代码.zip”很可能包含了使用Java编程语言实现的PDF处理功能。 在Java中...

    基于java的PDF分割与合并源代码.zip

    本压缩包“基于java的PDF分割与合并源代码.zip”包含了一个Java项目,该项目专注于PDF文件的分割和合并功能。以下将详细介绍这个项目中可能涉及的关键知识点和技术: 1. **Apache PDFBox**: Apache PDFBox是...

    用JAVA实现文件的分割

    总结起来,Java提供了丰富的文件操作API,使得文件分割和合并变得简单易行。在实际应用中,这些技术可以用于分发大型文件、处理大数据流或实现分布式系统中的数据传输。了解和熟练掌握这些技术对于任何Java开发者来...

    Java 使用IO流实现大文件的分割与合并实例详解

    Java中的IO流主要用于实现文件的读写操作,包括文件的分割与合并等功能。通过IO流,可以处理大文件数据,避免内存溢出等问题。本文将详细解读Java使用IO流实现大文件的分割与合并的技术实现。 首先,在Java中,所有...

    Java写的文件分割与合并器

    在实际应用中,文件分割与合并通常涉及到流(Stream)的操作,如`java.io.InputStream`和`java.io.OutputStream`,以及文件处理类如`java.io.File`。可能还用到了缓冲区(Buffer)以提高读写效率,比如`java.io....

    JAVA 对 PDF合并与分割

    在处理PDF文件时,有时我们需要将多个PDF文件合并为一个,或者将一个大PDF文件分割成多个小文件,这在企业文档管理和自动化流程中非常常见。Java作为一种多用途的编程语言,提供了许多库来处理PDF文件的合并与分割。...

    Java实现多个wav文件合成一个的方法示例

    在Java中,文件流读写是通过使用`FileInputStream`和`FileOutputStream`类来实现的。`FileInputStream`用来读取文件,而`FileOutputStream`用来写入文件。在上面的代码中,我们使用了`FileInputStream`来读取输入wav...

    java IO流将一个文件拆分为多个子文件代码示例

    Java IO流是一个文件流处理的基础组件,它提供了基本的文件读取和写入操作。将一个文件拆分为多个子文件是文件处理中一个常见的需求,例如上传大文件时,可以先分割成小块,传到服务器后,再进行合并。 下面是Java ...

    基于java的文件分割器源码

    Java作为一种广泛使用的编程语言,提供了丰富的库和工具来处理各种文件操作,包括文件的分割和合并。本篇文章将详细探讨基于Java的文件分割器和合并器的实现原理、相关知识点以及源码解析。 首先,文件分割是在大...

    JAVA 哈工大JAVA实验 文件切割合并处理

    在这个实验中,学生将学习如何使用JAVA API有效地处理文件,实现文件的分割和合并功能。 文件切割是指将一个较大的文件分成若干个较小的部分,通常是为了便于传输、存储或者分块处理。在JAVA中,我们可以使用`java....

Global site tag (gtag.js) - Google Analytics