Java实现文件目录复制
步骤一:创建CopyDir类
import java.io.*;
public class CopyDir {
public static void Copy(String src,String dest){
File srcDir = new File(src);
File distDir = new File(dest);
System.out.println();
if(!distDir.exists()){
distDir.mkdir();
}
File[] srcDirList = srcDir.listFiles();
for(File file:srcDirList){
//如果是文件则开始复制
if(file.isFile()){
//获取文件名
String fileName = file.getName();
String filePath = file.getAbsolutePath();
//创建目标文件路径
File destFilePath = new File(distDir.getAbsolutePath(),fileName);
CopyFile(filePath,destFilePath.getAbsolutePath());
}else {//如果目录则开始创建并迭代
String dirName = file.getName();
String dirPath = file.getAbsolutePath();
File destDirPath = new File(distDir.getAbsolutePath(),dirName);
//创建目录
if(!destDirPath.exists()){
destDirPath.mkdir();
}
Copy(dirPath,destDirPath.getAbsolutePath());
}
}
}
public static void CopyFile(String src,String dest){
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(src));
out = new BufferedOutputStream(new FileOutputStream(dest));
byte[] buf = new byte[1024];
int length = 0;
while ((length=in.read(buf))!=-1){
out.write(buf,0,length);
}
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(in != null&&out != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
步骤二:导包(同一个包可省略)
步骤三:调用,采用静态方法调用 CopyDir.Copy(String src,String dest);
import java.io.*;
public class Test {
public static void main(String[] args) {
String src = "1";
String dest = "2";
CopyDir.Copy(src,dest);
}
}