[java] view plaincopyprint?

import java.io.;/复制文件夹或文件夹/
public classCopyDirectory {//源文件夹
static String url1 = f:/photos;//目标文件夹
static String url2 = d:/tempPhotos;public static void main(String args[]) throwsIOException {//创建目标文件夹
(newFile(url2)).mkdirs();//获取源文件夹当前下的文件或目次
File[] file = (newFile(url1)).listFiles();for (int i = 0; i < file.length; i++) {if(file[i].isFile()) {//复制文件
copyFile(file[i],new File(url2+file[i].getName()));
}if(file[i].isDirectory()) {//复制目次
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
copyDirectiory(sourceDir, targetDir);
}
}
}//复制文件
public static voidcopyFile(File sourceFile,File targetFile)throwsIOException{//新建文件输入流并对它进行缓冲
FileInputStream input = newFileInputStream(sourceFile);
BufferedInputStream inBuff=newBufferedInputStream(input);//新建文件输出流并对它进行缓冲
FileOutputStream output = newFileOutputStream(targetFile);
BufferedOutputStream outBuff=newBufferedOutputStream(output);//缓冲数组
byte[] b = new byte[1024 5];intlen;while ((len =inBuff.read(b)) != -1) {
outBuff.write(b,0, len);
}//刷新此缓冲的输出流
outBuff.flush();//封闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}//复制文件夹
public static voidcopyDirectiory(String sourceDir, String targetDir)throwsIOException {//新建目标目次
(newFile(targetDir)).mkdirs();//获取源文件夹当前下的文件或目次
File[] file = (newFile(sourceDir)).listFiles();for (int i = 0; i < file.length; i++) {if(file[i].isFile()) {//源文件
File sourceFile=file[i];//目标文件
File targetFile=newFile(newFile(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}if(file[i].isDirectory()) {//筹办复制的源文件夹
String dir1=sourceDir + / +file[i].getName();//筹办复制的目标文件夹
String dir2=targetDir + /+file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
}