文件/目录的copy
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author: MoneyZhang
* @createTime: 2023/08/15 16:08
* @Des:
*/
public class Copy02 {
public static void main(String[] args) throws IOException {
File srcFile = new File("D:\\logs");
File destFile = new File("C:\\d");
copy(srcFile,destFile);
}
private static void copy(File srcFile, File destFile) throws IOException {
if (srcFile.isFile()) {
// 如果是文件,就进行读写
FileInputStream in = null;
FileOutputStream on = null;
try {
in = new FileInputStream(srcFile);
on = new FileOutputStream(destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() :(destFile.getAbsolutePath() + "\\") + srcFile.getAbsolutePath().substring(3));
byte[] bytes = new byte[1024];
int count = 0;
while ((count = in.read(bytes)) != -1) {
on.write(bytes,0,count);
}
on.flush();
} finally {
in.close();
on.close();
}
} else if (srcFile.isDirectory()) {
File[] files = srcFile.listFiles();
for (File file : files) {
if (file.isDirectory()) {
// 如果是目录。就复制
String src = destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() :(destFile.getAbsolutePath() + "\\") + file.getAbsolutePath().substring(3) ;
File file1 = new File(src);
if (!file1.exists()) {
file1.mkdirs();
}
}
// 如果是文件,就读写
copy(file,destFile);
}
}
}
}