java实现目录复制(高速度)

来源:互联网 发布:个人可以注册几个域名 编辑:程序博客网 时间:2024/05/16 09:25
package test;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 iotest {public static void filelist(File file,String mk_dir) throws IOException{File[] files=file.listFiles();if(files==null||files.length==0){System.out.println(file+"没有子目录");String nf=file.getAbsolutePath();String param=nf.substring(2, nf.length());File newfile=new File(mk_dir+param);newfile.mkdirs();}if(files!=null){for(File f1:files){//生成目录System.out.println("生成目录为:"+f1.getAbsolutePath());//获取文件目录String fil=f1.getAbsolutePath();//截取获得目录前面的盘符String param = fil.substring(2,fil.length());//x新目录的生成位置File fm=new File(mk_dir+param);//创建目录fm.mkdirs();//判断是否是文件if(f1.isFile()){InputStream is=new FileInputStream(fil);System.out.println("正在获取文件名字、。。。。");String path=fil.substring(fil.lastIndexOf("\\")+1,fil.length());System.out.println("文件名字为:"+path);OutputStream ot=new FileOutputStream(fm+"\\"+path);byte[] buf=new byte[1024];int len=0;System.out.println("正在复制。。。");while((len=is.read(buf))!=-1){ot.write(buf,0,len);}is.close();ot.close();}filelist(f1, mk_dir);}}}public static void main(String[] args) throws IOException {String mk_dir="F:/test111";String mk_dirs[]={"E:/app"};for(int i=0;i<mk_dirs.length;i++){File f=new File(mk_dirs[i]);filelist(f, mk_dir);}}}

0 0