java文件分割及合并

分割设置好分割数量,根据源文件大小来把数据散到子文件中代码如下;

package word;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;



public class Bb {
    
   
    public static void main(String[] args) throws FileNotFoundException {
        // TODO 自动生成的方法存根
        
        String path1="C:";
        String name="\\JAVA";
        String end=".txt";
        String path2;
        
        long l;
        long n=2;//设置分割数目
        File file = new File(path1+name+end);
        File file2; 
        l=file.length();
        InputStream in = null;
        PrintStream out = null;
        try {
         
            in = new FileInputStream(file);
            int tempbyte;
            int i=0;
            for(i=1;i<=n;i++) {
                path2=path1+name+i+end;
                file2=new File(path2);
                if(file2.exists()) {}
                else {
                    file2.createNewFile();
                }
                out=new PrintStream(file2);
            while ((tempbyte =  in.read()) != -1) {
                
            out.print((char)tempbyte);
            System.out.write(tempbyte);
            if(file2.length()>l/n)break;//子文件到达指定大小就创建下一个文件;
            }
            
            
            }
            out.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            return;

        }
   }}
   

合并就是上面的反过程,即把各个小文件输入到大文件中:

package word;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;



public class Bb {
    
   
   
    public static void main(String[] args) throws FileNotFoundException {
        // TODO 自动生成的方法存根
        
        String path1="C:";
        String name="\\JAVA";
        String end=".txt";
        String path2;
        
        
        long n=2;
        File file = new File(path1+name+end);
        File file2; 
        l=file.length();
        InputStream in = null;
        PrintStream out = null;
                if(file.exists()) {}
        else {
        file.createNewFile();
                }
                out=new PrintStream(file);
            try {
            
            
            
            int tempbyte;
            int i=0;
            for(i=1;i<=n;i++) {
                path2=path1+name+i+end;
                                file2=new File(path2);
                                in = new FileInputStream(file2);
                
                
                
            while ((tempbyte =  in.read()) != -1) {
                
            out.print((char)tempbyte);
        
            }
            
            
            }
            out.close();
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
            return;

        }
   }}
                           

猜你喜欢

转载自www.cnblogs.com/liuleliu/p/11830983.html