package com.ghgj.IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class IO5 {
public static void main(String[] args) {
File srcFile = new File(“D:\ddd”); //这里是源文件夹
File destFile = new File(“D:\ccc”); //要复制到的文件路径
copy(srcFile, destFile);
}
public static void copy(File srcFile , File destFile) {
File[] files = srcFile.listFiles(); //遍历拿到所有的源文件的文件名和文件夹
if(!destFile.exists()) { //判断目标文件有没有文件夹,如果没有则创建一个文件夹
destFile.mkdirs();
}
for (File f : files) {
if(f.isFile()) {
InputStream is = null; //首先要读出文件的内容,然后把文件的内容重新写到另一个指定的文件夹中
OutputStream os = null;
try {
is = new FileInputStream(f);
File f2 = new File(destFile,f.getName());//创建目标文件destFile下面与源文件对应的文件
os = new FileOutputStream(f2); //写到创建好的目标文件
byte[] b = new byte[1024*10];
int len;
while((len = is.read(b))!=-1) {
os.write(b, 0, len);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
if(is!=null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(os!=null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}else if(f.isDirectory()) { //如果不是文件,则使用递归,一直重复上面的代码,直到创建文件
File destFile2 = new File(destFile,f.getName());
copy(f, destFile2);
}
}
}
}