| 
         
     
     | 
     | 
    
  
    | 
    用Java简单实现文件分割与合并 | 
   
  
     | 
   
  
     | 
   
  
    | 
     作者:未知  来源:月光软件站  加入时间:2005-5-13 月光软件站  | 
   
  
     主要应用IO的RandomAccessFile(听说断点续传也是用它实现)   import java.io.*;
  class Fen{  String fileName;  int size;
   Fen(String fileName,String size){   this.fileName = fileName;   this.size = Integer.parseInt(size)*1024;   }      public void cut()throws Exception{    int maxx = 0;    File inFile = new File(fileName);        int fileLength = (int)inFile.length();  //取得文件的大小    int value;             //取得要分割的个数        RandomAccessFile inn = new RandomAccessFile(inFile,"r");//打开要分割的文件            value = fileLength/size;        int i=0;    int j=0;        //根据要分割的数目输出文件    for (;j<value;j++){     File outFile = new File(inFile.getName()+j+"zzii");     RandomAccessFile outt= new RandomAccessFile(outFile,"rw");     maxx+=size;     for (;i<maxx;i++){      outt.write(inn.read());     }     outt.close();    }    File outFile = new File(inFile.getName()+j+"zzii");    RandomAccessFile outt= new RandomAccessFile(outFile,"rw");    for(;i<fileLength;i++){       outt.write(inn.read());    }    outt.close();      inn.close();  } }
 
   class He{    String fileName;   String filterName;        He(String fileName,String filterName){     this.fileName = fileName;     this.filterName = filterName;    }             public void unite()throws Exception{     String [] tt;     File inFile = new File("."); //在当前目录下的文件     File outFile = new File(fileName);  //取得输出名     RandomAccessFile outt= new RandomAccessFile(outFile,"rw");          //取得符合条件的文件名     tt = inFile.list(new FilenameFilter(){      public boolean accept(File dir,String name){       String rr = new File(name).toString();       return rr.endsWith(filterName);      }     });     //打印出取得的文件名     for (int i = 0;i<tt.length;i++){      System.out.println(tt[i]);     }          //打开所有的文件再写入到一个文件里     for(int i=0;i<tt.length;i++){      inFile = new File(tt[i]);      RandomAccessFile inn= new RandomAccessFile(inFile,"r");      int c;      while((c=inn.read())!=-1)       outt.write(c);     }          outt.close();    }   }   
  public class test{  public static void main(final String [] args)throws Exception{      if(args.length==0){    print();    return;   }   if(args[0].equals("-c")){    Fen cutt = new Fen(args[1],args[2]);    cutt.cut();   }   else if (args[0].equals("-r")){    He hee = new He(args[1],args[2]);    hee.unite();   }   else    print();      }    public static void print(){   System.out.println("usage:\n分: java test -c file1 size(单位为K)\n合 java test -r file2 zzii(我设置的方便标识)"); } }
  
 
  | 
   
  
     | 
   
  
     相关文章:相关软件:  | 
   
   
      |