zoukankan      html  css  js  c++  java
  • 课后作业----大文件分割

    编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件。

    思路:大文件分割其实就是把文件内容平均分到多个小文件,可以定义一个大小作为平均大小,然后才进行文件操作。至于合并,则把这几个文件内容依次读入到一个新的文件。

    代码:

    package com.testHomework;
    
    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 FileBreakUp {
        private static int name = 1;
        public static void main(String[] args) {
            File file1 = new File("D:/java文件/Harry Potter and the Sorcerer's Stone.txt");
            File file2 = new File("D:/java文件");
            //BreakUp(file1,file2,1024*100);
            Mix(new File("D:/java文件/mix.txt"),new File("D:/java文件"));
        }
        
        // 文件分割
        public static void BreakUp(File file1,File file2,int size) {
            File file = file1;
            InputStream is = null;
            OutputStream os = null;
    
            try {
                is = new FileInputStream(file);
                byte[] flush = new byte[size];
                int len = -1;
                try {
                    while((len=is.read(flush))!=-1) {        
                        os = new FileOutputStream(file2.getAbsolutePath()+File.separatorChar+"break"+name+".txt");
                        os.write(flush, 0, len);
                        os.close();
                        name++;
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
        // 文件合并
        public static void Mix(File file1,File file2) {
            File file = file2;
            InputStream is = null;
            OutputStream os = null;
            try {
                os = new FileOutputStream(file1);
                byte[] flush = new byte[1024*100];
                int len = -1,num=1;
                try {
                    while(num<=5) {
                        is = new FileInputStream(file2.getAbsolutePath()+File.separatorChar+"break"+num+".txt");
                        while((len=is.read(flush))!=-1) {                                        
                            os.write(flush, 0, len);
                        }
                        num++;
                    }        
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    try {
                        os.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        }
    }

    运行结果:拆分结果:

     合并结果:

  • 相关阅读:
    oracle 常用函数
    css 让div 置于最顶层而不被其他东西挡住
    hibernate学习
    css居中参考
    log4j 将日志文件输出到web-inf下的解决办法
    mybatis 传递多个值的解决办法
    web项目中的路径问题
    sring 监听器
    struts2返回json字符串
    java 需要看的书籍
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/11832323.html
Copyright © 2011-2022 走看看