/**
* @author 12761
* @version v1.0
*/
public class CopyFile {
public static void copy(File file, File TargetDirectory) {
File TargetFile = new File(TargetDirectory, file.getName());
if (file.isDirectory()) {
TargetFile.mkdir();
File[] files = file.listFiles();
for (File f : files) {
copy(f, TargetFile);
}
} else {
try (InputStream is = new FileInputStream(file);
OutputStream os = new FileOutputStream(TargetFile);) {
byte[] buf = new byte[1024];
int length = 0;
while ((length = is.read(buf)) > 0) {
os.write(buf, 0, length);
}
System.out.println("拷贝完成!");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//测试
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
File file = null;
do {
System.out.print("请输入需要拷贝的文件的路径(原文件):");
String originalPath = sc.nextLine();
file = new File(originalPath);
if (!file.exists()) {
System.out.println("你输入的文件地址不存在,请重新输入!");
}
} while (!file.exists());
System.out.print("请输入你要拷贝的目标文件的地址(目标目录):");
String targetPath = sc.nextLine();
File targetDirectory = new File(targetPath);
if (!targetDirectory.isDirectory()) {
System.out.println("你输入的不是一个目录!");
return;
}
CopyFile.copy(file, targetDirectory);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/a5163003620702df682aa4f39d467c3f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0d42f641054f48763245b208c9136764.png)