Java课后实验,复制某一路径下的所有文件到另一个路径下
import java.io.File;
import java.io.*;
public class test_CopyAll {
public static void main(String[] args) {
copyFolder("src/test_7/Source","src/test_7/Target");
}
//循环遍历文件的变式使用
public static void copyFolder(String SrcFolder,String TrgFolder){
File srcF=new File(SrcFolder);
File[] flists=srcF.listFiles(); //获取目录下的所有文件
for(File f:flists){
if(f.isFile()){
File newTrgFile=new File(TrgFolder+"/"+f.getName()); //也可以转换为字符串,进行字符串的替换操作
copyFile(f,newTrgFile); //直接进行IO操作复制
}else if(f.isDirectory()){
File mkFile=new File(TrgFolder+"/"+f.getName()); //准备进行目录的创建
if(!mkFile.exists()){
mkFile.mkdir(); //先将目录创建出来
}
copyFolder(f.toString(),TrgFolder+"/"+f.getName()); //递归调用
//copyFolder(SrcFolder+"/"+f.getname(),TrgFolder+"/"+f.getName());
}
}
}
public static void copyFile(File SrcFile,File TrgFile){
BufferedInputStream BufIn=null; //定义出字节缓冲流
BufferedOutputStream Bufout=null;
try {
BufIn=new BufferedInputStream(new FileInputStream(SrcFile));
Bufout=new BufferedOutputStream(new FileOutputStream(TrgFile));
int BufRead;
while ((BufRead=BufIn.read())!=-1){
Bufout.write(BufRead);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(BufIn!=null) BufIn.close();
if(Bufout!=null) Bufout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}