`

java使用IO流进行文件的合并

    博客分类:
  • Java
 
阅读更多
package chapter8.file;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.SequenceInputStream;
 
public class TwoFileCombine {
    public static void main(String[] args) throws IOException {
        //字节输入流对象s1
        InputStream s1 = new FileInputStream(new File("src/chapter8/file/1.txt"));
        //字节输入流对象s2
        InputStream s2 = new FileInputStream(new File("src/chapter8/file/2.txt"));
        /**
         * java.io 
                类 SequenceInputStream
            SequenceInputStream 表示其他输入流的逻辑串联。它从输入流的有序集合开始,
            并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,
            直到到达包含的最后一个输入流的文件末尾为止。
             
            SequenceInputStream(InputStream s1, InputStream s2) 
            通过记住这两个参数来初始化新创建的 SequenceInputStream(将按顺序读取这两个参数,先读取 s1,然后读取 s2),
            以提供从此 SequenceInputStream 读取的字节。
         */
        //创建一个序列流,合并两个字节流is1和is2
        SequenceInputStream se = new SequenceInputStream(s1, s2);
        //字节输出流对象os
        OutputStream os = new FileOutputStream("src/chapter8/file/12.txt");
        //创建一个1024个字节数组的缓存区
        byte[] b = new byte[1024];
        int len = 0;
        while((len=se.read(b))!=-1){
            os.write(b, 0, len);//将缓冲区的数据输出
            os.write("\r\n".getBytes());//回车换行
        }
        System.out.println("合并成功");
    }
}

 

package chapter8.file;
 
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 java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;
 
public class ManyFileCombine {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象s1,s2,s3
        InputStream s1 = new FileInputStream(new File("src/chapter8/file/1.txt"));
        InputStream s2 = new FileInputStream(new File("src/chapter8/file/2.txt"));
        InputStream s3 = new FileInputStream(new File("src/chapter8/file/3.txt"));
         
        /**
         * SequenceInputStream(Enumeration<? extends InputStream> e) 
            通过记住参数来初始化新创建的 SequenceInputStream,
            该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
         */
        //创建一个Vector类对象v
        Vector<InputStream> v = new Vector<>();
        /**
         * void addElement(E obj) 将指定的组件添加到此向量的末尾,将其大小增加 1。 
         */
        //将3个字节流对象添加到Vector容器中
        v.addElement(s1);
        v.addElement(s2);
        v.addElement(s3);
        //获取Vector对象中的元素
        Enumeration<InputStream> e = v.elements();
        //将Enumeration对象中的流合并(创建一个序列流,用于合并多个字节流文件s1,s2,s3)
        SequenceInputStream se = new SequenceInputStream(e);
        OutputStream os = new FileOutputStream("src/chapter8/file/123.txt");
        byte[] b = new byte[1024];
        int len=0;
        while((len=se.read(b))!=-1){
            os.write(b, 0, len);
            os.write("\r\n".getBytes());
        }
        System.out.println("合并成功");
         
         
    }
}

 

分享到:
评论

相关推荐

    java_IO流的处理.ppt

    Java IO流处理是Java编程中一个非常重要的概念,它用于在不同数据源之间传输数据,如文件、网络、内存等。在Java中,IO流分为两大类:输入流(Input Stream)和输出流(Output Stream),它们分别用于数据的读取和...

    彻底明白java中的IO流

    Java中的IO流是Java核心库java.io中的关键组成部分,它为程序提供了与外部资源交互的能力,包括文件读写、标准设备输入输出等。Java的IO流机制基于流的概念,流可以被视为数据传输的通道,数据按照序列化的方式从...

    练习-java输入输出之文件字节io流之合并文件

    练习-java输入输出之文件字节io流之合并文件以下是一个示例Java程序,演示如何使用文件字节IO流合并两个文件:见附件在上面的示例中,我们首先定义了要合并的两个文件名和合并后的文件名。然后,我们使用...

    一文读懂Java IO流 1. IO流基础概念 1.1 什么是IO流 1.2 IO流的分类 1.2.1 按数据传输单位分类 1.2.2 按功能角色分类 1.3 Java IO流体系结构 1.4 流的基

    一文读懂Java IO流 1. IO流基础概念 1.1 什么是IO流 1.2 IO流的分类 1.2.1 按数据传输单位分类 1.2.2 按功能角色分类 1.3 Java IO流体系结构 1.4 流的基本操作 2. 字节流 2.1 InputStream - 输入字节流 2.2 ...

    java_io流的处理

    在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件读写数据以及在网络连接上进行读写操作。Java将这些不同的输入输出源抽象为流(Stream),简化了程序设计。流可以...

    Java IO流几种经典使用方式

    ### Java IO流几种经典使用方式 #### 一、输入输出流(Input/Output Stream) ...这段示例代码展示了如何使用`BufferedReader`和`BufferedWriter`来读取和写入文件,体现了Java IO流在实际应用中的灵活性和高效性。

    java 使用POI合并两个word文档.docx

    Java 使用 POI 合并两个 Word 文档 Java 是一种流行的编程语言,POI(Poor Obfuscation Implementation)是一个流行的 Java 库,用于操作 Microsoft Office 文件,包括 Word 文档。合并两个 Word 文档是指将两个...

    java 文件切割合并

    本篇文章将深入探讨如何使用Java的IO流进行文件切割和合并。 首先,我们要了解Java中的IO流。Java的IO库提供了大量的类来处理输入和输出,如FileInputStream和FileOutputStream用于读写文件,BufferedInputStream和...

    java输入输出之文件字节io流之合并文件.md

    练习-java输入输出之文件字节io流之合并文件

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

    文件合并则是将之前切割的多个小文件重新组合成原始的大文件。这个过程通常需要按照切割时的顺序依次读取每个小文件,并将其内容追加到新的大文件中。在JAVA中,我们可以使用`FileInputStream`和`FileOutputStream`...

    java之精髓IO流

    在实际开发过程中,经常需要对基础的流进行扩展,为其添加额外的功能。这可以通过继承自`FilterInputStream`和`FilterOutputStream`的类来实现。 ##### 2.1 “为Stream添加属性”的作用 为Stream添加属性主要是...

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

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

    IO流pdf宝典

    ### JAVA IO流概念及其应用详解 ...通过对以上知识点的学习,我们可以了解到JAVA IO流在处理文件和其他设备上的数据时的强大功能。掌握好这些基本概念和技巧,能够帮助开发者更好地处理各种数据操作需求。

    java的IO流操作

    Java的IO流操作是进行数据读写的重要手段,通过不同的流类可以实现不同场景下的数据处理需求。熟练掌握这些流类的使用方法对于开发基于文件或其他形式数据的应用程序至关重要。无论是进行简单的文件读写还是复杂的...

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

    文件合并则是反过来的过程,利用输入流读取各个小文件,通过输出流合并成原始文件。在这个过程中,可能需要对文件进行排序,确保合并的顺序正确。同时,为了确保数据的完整性和一致性,我们还需要处理异常,比如文件...

    java 多个小文件合成一个文件

    在Java编程语言中,将多个小文件合并成一个文件是一个常见的需求,特别是在处理大量数据或者进行文件归档时。这个过程通常称为文件拼接或文件合并。以下将详细讲解如何使用Java来实现这一功能。 首先,我们需要理解...

    java文件分割合并

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

    java多个PDF文件合并为一个PDF文件源码

    在Java编程环境中,合并多个PDF...通过上述代码,你可以在Java项目中实现将PDF文件夹中的多个PDF文件合并为一个PDF文件。请确保在运行代码之前,已经正确配置了PDFBox库,并且提供的文件夹路径包含了要合并的PDF文件。

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

    本文将详细解读Java使用IO流实现大文件的分割与合并的技术实现。 首先,在Java中,所有关于输入输出操作的类都是从抽象类InputStream或OutputStream派生出来的。而针对文件操作的特定类,通常位于java.io包中,例如...

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

    3. **按功能与应用对象划分**:包括节点流(直接连接到数据源/目的地)和处理流(对已有流进行包装,增加额外功能)。 **三、InputStream与OutputStream** InputStream代表所有字节输入流的抽象基类,其read()方法...

Global site tag (gtag.js) - Google Analytics