import java.io.*;
/**
* 复制文件夹
*/
public class demo1 {
public static void main(String[] args) {
//源文件
File srcfile = new File("src\\IOtest");
//复制路径
File dirfile = new File("src\\others");
copyDir(srcfile,dirfile);
}
/**
* @param srcfile 源文件目录
* @param dirfile 目标文件目录
*/
public static void copyDir(File srcfile, File dirfile){
//判断是否存在原路径,是否为文件夹
if (srcfile.exists() && srcfile.isDirectory()){
//创建复制目标文件夹
dirfile.mkdirs();
//提取源文件夹一级文件对象
File[] files = srcfile.listFiles();
//判断是否存在一级文件对象
if (files != null && files.length>0){
//遍历一级文件对象
for (File file : files) {
if (file.isFile()){
//直接复制文件到目录
copyFile(file , new File(dirfile,file.getName()));
}else {
copyDir(file , new File(dirfile,file.getName()));
}
}
}
}
}
/**
* @param srcfile 源文件
* @param destfile 目标文件路径
*/
private static void copyFile(File srcfile, File destfile) {
try(
//1.创建一个低级的字节输入流与原文件接通
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(srcfile));
//2.创建一个低级字节输出流和目标文件接通
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(destfile));
){
//3.定义一个字节数组
byte[] buffer = new byte[1024];
//定义一个变量存储每次读取的字节数量
int len;
while ((len = bufferedInputStream.read(buffer)) != -1){
bufferedOutputStream.write(buffer,0,len);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
Java 复制文件夹的代码实现
最新推荐文章于 2024-08-30 22:40:46 发布