`

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 文件切割合并

    java 通过io流 让文件切割 或者 合并。。

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

    主要介绍了Java 使用IO流实现大文件的分割与合并实例详解的相关资料,需要的朋友可以参考下

    java文件分割合并

    利用java io写了一个文件分割和合并的代码,两个文件分开,希望可以对大家有帮助

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

    java课程设计,io流+gui界面,注释详细,简单易懂。

    java 文件分割合并源码

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

    Java合并文件夹下的所有文件

    使用Java代码实现Java文件夹下的内容并将其合并起来,对刚接触IO的程序员非常适合

    Java实现文件分割和文件合并实例

    文件切割和文件合并这个问题困扰了我有一段时间了(超过一天没做粗来)。 找了好多博客,本来想转载一个来的 结果找不到了。很无奈。 只好自己贴代码上了。 当然我会尽力好好写注释的。 文件切割器: import java.io...

    多文件内容拷贝到一个文件上(解决中文乱码) java实现

    使用java IO技术实现将多文件中的内容集中到一个文件上 只需输入一个文件夹的路径和目的路径即可完成文件拷贝复制 并且解决了中文乱码的问题s

    教你彻底明白Java的IO系统

    在Java的IO中,所有的stream(包括Input和Out stream)都包括两种类型: 1.1 以字节为导向的stream 以字节为导向的stream,表示以字节为单位从stream中读取或往stream中写入信息。以字节为导向的stream包括下面几种...

    深刻理解java io

    1) ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用 2) StringBufferInputStream:把一个String对象作为InputStream 3) FileInputStream:把一个文件作为InputStream,实现对文件的读取操作 4) ...

    io-file.rar_java 文件操作_java 日志_日志 java

    这个java类文件主要使用了java io访问及文件操作处理。电信设备产生的大量的日志文件的内容需要写入到数据库中,设备在每天将产生数以百计的日志文件,这些日志文件的内容存储遵循一定的格式,本文件实现将这些文件...

    JAVA 操作文件,读写。

    用java编写的一个操作文件的程序。具体功能是 将指定文件夹下面的所有txt文件的内容合并到一个txt里边。其中包含了java io流读写文件的操作。 将项目导入myeclipse直接运行就可以了。

    java IO章节的总结

    以上能够直接对数据进行读和写的流叫节点流,但是直接用这些来操作是比较麻烦的,而且一个字节一个字节的对文件处理,对硬盘的读取和存入对硬盘的损伤是很大的,因此需要对这些节点流进行包装,即外套一些处理流来...

    JavaSE基础篇 -- IO流的详细操作

    本资源内详尽描述了Java基础的IO操作,包括基本的文件读取、写入、复制、分割、合并等动作,详情另可参见我的博客http://blog.csdn.net/zhongkelee/article/details/47061013

    java源码包---java 源码 大量 实例

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    IO体系.java

    将多个读取流合并成一个读取流,可以方便操作多个读取流。原理(迭代器)。 OutputStream |--FileOutputStream/:文件输出流。用于将写入File和FileDescriptor的输出流。用来操作图像,声音,视频等原始字节流。 ...

    pdfbox-2.0.17.zip pdf文件合并拼接

    pdf文件合并拼接 package com.zht; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.pdfbox.io.MemoryUsageSetting; import...

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    面试题:把a.txt、b.txt文件合并写到c.txt文件

    最近做到的面试题,绝对路径下既有文件又有文件夹下的文件,需要拆分合并字符,一个简单程序demo,普通java类写的

    java源码包4

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

Global site tag (gtag.js) - Google Analytics