Java

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

2019-09-28  本文已影响0人  一亩三分甜

合并流

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Enumeration;
import java.util.Vector;

public class SequenceDemo {
    public static void main(String[] args) throws IOException
    {
        Vector<FileInputStream> v = new Vector<FileInputStream>();
        v.add(new FileInputStream("1.txt"));
        v.add(new FileInputStream("2.txt"));
        v.add(new FileInputStream("3.txt"));
        Enumeration<FileInputStream> en = v.elements();
        SequenceInputStream sis = new SequenceInputStream(en);
        FileOutputStream fos = new FileOutputStream("4.txt");
        byte[] buf = new byte[1024];
        int len = 0;
        while ((len = sis.read(buf))!= -1)
        {
            fos.write(buf,0,len);
        }
        fos.close();
        sis.close();
    }
}
Snip20190928_4.png

切割文件

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class SplitFile {
    public static void main(String[] args) throws IOException
    {
         splitFile();
    }
    public static void  splitFile() throws IOException
    {
        FileInputStream fis = new FileInputStream("2.jpg");
        FileOutputStream fos = null;
        byte[] buf = new byte[1024*1024];
        int len = 0;
        int count = 1;
        while ((len = fis.read(buf))!= -1)
        {
            fos = new FileOutputStream("splitfiles"+File.separator+(count++)+".part");
            fos.write(buf,0,len);
            fos.close();
        }
        fis.close();
    }
}
Snip20190928_8.png

合并文件

import java.io.*;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;

public class SplitFile {
    public static void main(String[] args) throws IOException
    {
        merge();
    }
    public static void  merge() throws IOException
    {
        ArrayList<FileInputStream> a1 = new ArrayList<FileInputStream>();
        for (int x=1;x<=2;x++)
        {
            a1.add(new FileInputStream("splitfiles"+File.separator+x+".part"));
        }
        final Iterator<FileInputStream> it = a1.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"+File.separator+"0.jpg");
        byte[] buf = new byte[1024];
        int len = 0;
        while ((len=sis.read(buf))!=-1)
        {
            fos.write(buf,0,len);
        }
        fos.close();
        sis.close();
    }
}
Snip20190928_13.png
上一篇 下一篇

猜你喜欢

热点阅读