import java.io.*;
/**
* @Author langkye
*/
public class FileCopy{
public static void main(String[] args) {
//源目录
String srcDir = "D:\src";
//目标目录
String targetDir = "D:\target";
File src = new File(srcDir);
File target = new File(targetDir);
reCopyFiles(src,target);
}
public static void reCopyFiles(File src, File target){
//如果src是目录
if (src.isDirectory()){
//在目标目录下创建src的文件夹
File t = new File(target.getAbsoluteFile()+File.separator+src.getName());
t.mkdirs();
for (File s :src.listFiles()){
//递归调用
reCopyFiles(s,t);
}
}//如果src是文件
else if (src.isFile()){
InputStream in = null;
OutputStream out = null;
try {
//创建输入、输出流拷贝文件
in = new FileInputStream(src);
out = new FileOutputStream(target.getAbsoluteFile()+File.separator+src.getName());
int len = -1;
//每次写8字节
byte[] bytes = new byte[1024*8];
while ((len=in.read(bytes))!=-1){
out.write(bytes,0,len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}