java 递归复制文件夹及文件夹内的文件
package com.xindecoiot.rfidchecker.result;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileUtils {
// 测试
public static void main(String[] args) {
try {
copyDir("D:/test", "D:/testcopy");
System.out.print("复制成功");
} catch (IOException e) {
e.printStackTrace();
System.out.print("复制失败");
}
}
// 复制文件
public static void copyFile(File source, File target) throws IOException {
FileInputStream input = new FileInputStream(source);
FileOutputStream out = new FileOutputStream(target);
BufferedOutputStream outbuff = new BufferedOutputStream(out);
byte[] b = new byte[1024];
int len = 0;
while ((len = input.read(b)) != -1) {
outbuff.write(b, 0, len);
}
outbuff.close();
out.close();
input.close();
}
// 复制文件夹
public static void copyDir(String source, String target) throws IOException {
new File(target).mkdirs();
File[] files = new File(source).listFiles();
for (File file:files) {
if (file.isFile()) {
File targetFile = new File(target + File.separator + file.getName());
copyFile(file, targetFile);
} else if (file.isDirectory()) {
String sour = source + File.separator + file.getName();
String tar = target + File.separator + file.getName();
copyDir(sour, tar);
}
}
}
}