主要应用IO的RandomAccessFile(听说断点续传也是用它实现) k??乌???? import java.io.*; \ ??qX驹? ??? -芦? class Fen{ ??u??}???? String fileName; ??@??C*^ int size; cT"{点K? |t???? F? Fen(String fileName,String size){ ??? ?8M this.fileName = fileName; 顿??$A<?? this.size = Integer.parseInt(size)*1024; 菇?%??帷L } Ox??P??? h?????? public void cut()throws Exception{ 躁??X???0 int maxx = 0; ?????}v? File inFile = new File(fileName); ?E??????? ??H??? int fileLength = (int)inFile.length(); //取得文件的大小 ??ms?????? int value; //取得要分割的个数 H_s????n ??2放e|N RandomAccessFile inn = new RandomAccessFile(inFile,"r");//打开要分割的文件 ????I???? ??????H??? ?.pd愀aNv value = fileLength/size; a??姝$vi >悼S???O0 int i=0; 9t??F??铉 int j=0; ???H???? 晋>???p? //根据要分割的数目输出文件 昃??X??[ for (;j File outFile = new File(inFile.getName()+j+"zzii"); ????)p??? RandomAccessFile outt= new RandomAccessFile(outFile,"rw"); N?2wK沈? maxx+=size; 豸 ???6?? for (;i outt.write(inn.read()); 3?G??k|1? } 卫???S?? outt.close(); {eU???’贳 } D???"??? File outFile = new File(inFile.getName()+j+"zzii"); 耕m??瀵 廪? RandomAccessFile outt= new RandomAccessFile(outFile,"rw"); Z`?/O???? for(;i >?sf? outt.write(inn.read()); n穹)?遴 } ?B乜???? outt.close(); J???|x2?? xex榇?vY inn.close(); }??kA棹?? } 劝0清???? } ~?Wī 1;@~??醮?? *??w? y class He{ _h湄????? String fileName; N<K陡x?Q? String filterName; ???In?<? ??5eA’铫? He(String fileName,String filterName){ DP?????? this.fileName = fileName; #"=z??T? this.filterName = filterName; 锔q??亡A? } Z樗?????? H???~??啄 ??佤#n%1 public void unite()throws Exception{ ??’J??A7 String [] tt; _7-:’?? File inFile = new File("."); //在当前目录下的文件 ?y?YvZWd File outFile = new File(fileName); //取得输出名 w醯U????? RandomAccessFile outt= new RandomAccessFile(outFile,"rw"); ??(????y? ????T??:! //取得符合条件的文件名 g?巷A??z tt = inFile.list(new FilenameFilter(){ ????舔蜢 public boolean accept(File dir,String name){ r耜;????? String rr = new File(name).toString(); C?????Y return rr.endsWith(filterName); ??Ryb沌?? } T??????o }); ??褒a?? //打印出取得的文件名 轾??-{YD for (int i = 0;i System.out.println(tt); ???WE弼? } ??N??6#? ?r??)铬h //打开所有的文件再写入到一个文件里 ?j4:?]Q?? for(int i=0;i inFile = new File(tt); ???"0?Pr RandomAccessFile inn= new RandomAccessFile(inFile,"r"); G??ngm?? int c; 呵Gj??Z? while((c=inn.read())!=-1) 3???DZ outt.write(c); #U??]洙 Su } ????馘?ǎ 蹊荤3蹀??W outt.close(); 巅e?????? } l+],酞e } 0?.???? ]妩RM?? 缡 ????7? J? public class test{ ??yT??n> public static void main(final String [] args)throws Exception{ Ⅱm?eo?? 晾な8???? if(args.length==0){ TKㄩp?) print(); ク???? return; ??励??BB? } g?4??q?? if(args[0].equals("-c")){ 蠢????Y? Fen cutt = new Fen(args[1],args[2]); L????J?? cutt.cut(); ?lt;? L??放 } Asf; 煌] ? else if (args[0].equals("-r")){ 0ヲ9?????? He hee = new He(args[1],args[2]); ZZMé??? hee.unite(); ????7;^*i } ??a?????? else #si????? print(); B.??<<% r????窄觚? } 5憝C.M??? 潍`???>?? public static void print(){ p咚??>c??? System.o
ut.println("usage:\n分: java test -c file1 size(单位为K)\n合 java test -r file2 zzii(我设置的方便标识)"); 4"f%ov??? } ??o??mN?} }
|