package com.MyFile.FileCopy;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class FileCopy {
public static void main(String[] args){
copy("F://aaa","D://aaa");//传入两个路径
}
public static void copy(String src, String des){
//根据路径创建目标文件和源文件对象
File f1 = new File(src);
File copyPath = new File(des);
File[] files = f1.listFiles();
//判断目标文件中是否存在文件夹,不存在则一次创建完
if(!copyPath.exists()){
copyPath.mkdirs();
}
//遍历文件集合
for (File file : files) {
//是文件则调用copy方法
if(file.isFile()){
//传入文件的绝对路径,目标文件的路径
copyFile(file.getPath(),des+"//"+file.getName());
}else{
//如果是文件夹则继续调用方法
copy(file.getPath(),des+"//"+file.getName());
}
}
}
public static void copyFile(String src, String des){
//先创建字节输入输出流对象,赋值为null
FileOutputStream fos = null;
FileInputStream fis = null;
//在读写时可能会出现异常,使用try捕获处理
try {
//根据传入的路径给输入输出流赋值
fis = new FileInputStream(src);
fos = new FileOutputStream(des);
//定义一个变量来记录获得的字节
int len =-1;
while((len = fis.read())!=-1){
fos.write(len);
fos.flush();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
//读取完后关闭流
if(fos!=null) fos.close();
if(fis!=null) fis.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
Java拷贝文件
最新推荐文章于 2025-04-30 19:16:09 发布