Java实现文件拆分


本文链接: https://51meaning.cn/blog/?p=100   转载请注明转载自:www.51meaning.cn

java

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;
public class ChaiFenWenJian {
    /**
     *
     *sourceFile:源文件的路径
     *targetDirectory:保存文件的目录(例:'C:\\')
     *prefix:是分割后文件的前缀(例:'2015-09-09')
     *prefix:是分割后文件的后缀——文件的格式(例:.txt)
     *size:是分隔后单一文件的大小单位是1kb的倍数,size传10,分割后单一文件就是10K。传1024,文件就是1M一个。
     **/
    public static void cutToMoreFile(String sourceFile, String targetDirectory, String prefix,String suffix, int size) {
        //加载源文件
        File source = new File(sourceFile);
        InputStream in = null;
        OutputStream out = null;
        int len = 0;
        int fileIndex = 1;
        //设置一次加载的大小
        byte[] buffer = new byte[1024];
        try {
            //把源文件读到InputStream中
            in = new FileInputStream(source);
            //循环
            while(true) {
                //分割后的文件流
                out = new FileOutputStream(targetDirectory + File.separator + prefix + fileIndex++ + suffix);
                for(int i = 0; i < size; i++) {
                    //如果文件读取完就退回方法。
                    if((len = in.read(buffer)) != -1) {
                        //写入分割后的文件
                        out.write(buffer, 0, len);
                    }else {
                        //执行finally内容后,退出方法
                        return;
                    }
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                //关系流
                in.close();
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
3+
avatar