美文网首页
IO流之合并流

IO流之合并流

作者: 秃头大叔 | 来源:发表于2017-11-20 11:39 被阅读0次

SequenceInputStream合并流

可将多个读取流合并,通常用于大文件切割后的合并;

文件的分割

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

public class qiegeAndhebin{

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
//      切割文件
        File dir = new File("hehe");
        if(!dir.exists()){
            dir.mkdir();
        }
        File file = new File("emailcard.bmp");
        FileInputStream fis = new FileInputStream(file);
        FileOutputStream fos = null;
        int len;
        int count = 1;
        byte[] bytes = new byte[2048];
        System.out.println("文件共"+file.length()+"字节,分割成"+file.length()/2048+"个文件");
        while((len = fis.read(bytes)) != -1){  //按照2048字节进行分割文件
            fos = new FileOutputStream(new File(dir,count++ + ".part"));
            fos.write(bytes,0,len);
            fos.flush();
        }
        fos.close();
        fis.close();
        
        

文件的合并
        
//      读取dir目录下所有文件,添加到array集合,
        ArrayList<FileInputStream> array = new ArrayList<FileInputStream>();
        for(int i =0 ; i< dir.listFiles(new hzmFilter("part")).length;i++){
            array.add(new FileInputStream(new File(dir,i+1+".part")));
        }
        Enumeration<FileInputStream> en = Collections.enumeration(array); //枚举
        SequenceInputStream in = new SequenceInputStream(en);//获得合并流,另种传参方式可,直接传入File1,File2,在文件数量及名称已经的情况可用
        FileOutputStream fos1 = new FileOutputStream(new File(dir,"hebin.bmp"));//指定目录创建合并的文件
        int num;
        byte[] bytes1 = new byte[1024];
        while((num = in.read(bytes1)) != -1){
            fos1.write(bytes1,0,num);
            fos1.flush();
        }
        
        fos1.close();
        in.close();
        
    }

}

相关文章

  • IO流之合并流

    SequenceInputStream合并流 可将多个读取流合并,通常用于大文件切割后的合并; 文件的分割 文件的合并

  • IO流之 合并流

    序列流 1.什么是序列流 把多个字节输入流整合成一个字节流,从序列流中读取数据时,将从第一个被整合的输入流开始读,...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • IO流之 打印流

    打印流 核心代码无变化,所以不做多余记录 什么是打印流 使用方式【特有方法】

  • IO流之缓冲流

    上一篇:IO流之文件字符输出流【FileWriter】 https://www.jianshu.com/p/579...

  • IO流之对象流

    对象流的使用 ObjectInputStreamObjectOutputStream 作用:用于存储和读取基本数据...

  • Java IO流(合并流和切割文件)

    合并流 切割文件 合并文件

  • 2021-09-20 IO流(合并流)

  • IO流之节点流(文件流)

    IO流的分类 按操作的数据单位:字节流(8bit),字符流(16bit)---->对于文本文件使用字符流处理,对于...

  • java基础-day20-IO流和StringBuffer

    IO流和StringBuffer 1. IO流 1.1 IO流概述 1.2 IO流分类 1.3 文件操作输入输出字...

网友评论

      本文标题:IO流之合并流

      本文链接:https://www.haomeiwen.com/subject/dtxvvxtx.html