标签:位置 exists public sts tst pre pat 目标 nal
package com.jiang.io;
import java.io.*;
/**
* @author JQC
* @date 2021/2/8-23:21
*/
public class FilesCopyTest {
public static void main(String[] args) {
//多重目录及文件的复制
File file = new File("D:\\svn");
File fileCopy = new File("D:\\file");
// 判断目标位置目录是否存在,不存在则创建
if(!fileCopy.exists()){
fileCopy.mkdirs();
}
// 复制文件
copyFile(file,fileCopy);
}
public static void copyFile(File file,File fileCopy){
//判断是否是目录
if(file.isDirectory()){
//创建目录
String path = fileCopy.getPath() + file.getPath().substring(2);
File file1 = new File(path);
if(!file1.exists()){
file1.mkdirs();
}
// 列举该目录下的所有File
File[] files = file.listFiles();
// 遍历所有的File
for (File file2: files) {
// 递归调用判断是否是文件还是目录
copyFile(file2,fileCopy);
}
}else{
//判断是否是文件
String path = fileCopy.getPath() + file.getPath().substring(2);
// 复制文件
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file.getPath());
fos = new FileOutputStream(path);
byte[] bytes = new byte[1024*1024];
int readCount = 0;
while ((readCount = fis.read(bytes)) != -1){
fos.write(bytes,0,readCount);
}
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
标签:位置 exists public sts tst pre pat 目标 nal
原文地址:https://www.cnblogs.com/jqccan/p/14391620.html