美文网首页
2021-09-20 IO流(切割文件)

2021-09-20 IO流(切割文件)

作者: Denholm | 来源:发表于2021-10-13 19:53 被阅读0次
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;
import java.util.List;

public class 切割合并文件 {

    public static void main(String[] args) throws IOException {
        int count = cutFile();
        merge(count);
    }

    // 切割文件
    public static int cutFile() throws IOException {
        FileInputStream fis = new FileInputStream("E:\\abc.pdf");
        FileOutputStream fos;
        byte[] buf = new byte[1024 * 1024];
        int len;
        int count = 1;
        while ((len = fis.read(buf)) != -1) {
            fos = new FileOutputStream("E:\\splitFiles\\" + (count++) + ".part");
            fos.write(buf, 0, len);
            fos.close();
        }
        System.out.println(count);
        fis.close();
        return count;
    }

    // 合并文件
    public static void merge(int count) throws IOException {
        List<FileInputStream> list = new ArrayList<>();
        for (int i = 1; i <= count; i++) {
            list.add(new FileInputStream("E:\\splitFiles\\" + i + ".part"));
        }
        Iterator<FileInputStream> iterator = list.iterator();
        Enumeration<FileInputStream> en = new Enumeration<FileInputStream>() {
            @Override
            public boolean hasMoreElements() {
                return iterator.hasNext();
            }

            @Override
            public FileInputStream nextElement() {
                return iterator.next();
            }
        };
        SequenceInputStream sis = new SequenceInputStream(en);
        FileOutputStream fos = new FileOutputStream("E:\\splitFiles\\merge.pdf");
        byte[] buf = new byte[1024 * 1024];
        int len;
        while ((len = sis.read(buf)) != -1) {
            fos.write(buf, 0, len);
        }
        fos.close();
        sis.close();
    }

}

相关文章

  • 2021-09-20 IO流(切割文件)

  • 2019-03-09

    IO流之键盘录入,视频文件切割合并操作总结 键盘录取 媒体文件的切割技术将源文件以及切割的一些信息也保存起来随着碎...

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

    合并流 切割文件 合并文件

  • java基础-day20-IO流和StringBuffer

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

  • 文件IO流

    从控制台读取输出字符从文件中写入读取字符从文件中写入读取字节文件夹操作 1. 从控制台读取输出字符 输入由Syst...

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

  • Java 流(Stream)、文件(File)和IO

    Java 流(Stream)、文件(File)和IO 简介 1.什么是流,什么是文件,什么是IO? 一个流可以理解...

  • java_io

    java.io.File类的使用IO原理及流的分类  |---文件流   操作对象是文件     FileInp...

  • IO流之合并流

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

  • Java的IO流

    一、IO流概述 IO流:Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,...

网友评论

      本文标题:2021-09-20 IO流(切割文件)

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