package com.copy;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.output.StreamUtils;
//拷贝文件夹
public class CopyDemo {
public static void main(String[] args) {
File source = new File("E:\\download\\Boom_man");
File target = new File("E:\\copy");
copy(source, target);
}
private static void copy(File source, File target) {
if (!source.exists()) {
return;
}
if (!target.exists()) {
target.mkdirs();
}
// 如果是文件,直接创建
if (source.isFile()) {
copyFile(source, target);
System.out.println("拷贝文件:" + source.getName());
} else {
// 列出source下的所有文件或文件夹
File[] sourceChildren = source.listFiles();
for (File f : sourceChildren) {
copy(f, new File(target, source.getName()));
}
}
}
// 拷贝文件
private static void copyFile(File source, File target) {
if (!source.exists()) {
System.out.println("文件不存在");
return;
}
if (!target.exists()) {
target.mkdirs();
}
File targetFile = new File(target, source.getName());
// 拷贝
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(source));
bos = new BufferedOutputStream(new FileOutputStream(targetFile));
int len = 0;
byte[] buf = new byte[1024];
while ((len = bis.read(buf)) != -1) {
bos.write(buf, 0, len);
}
bos.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
StreamUtils.closeOutput(bos);
StreamUtils.closeInput(bis);
}
}
}
Java 拷贝文件夹
最新推荐文章于 2025-05-20 16:09:44 发布