1.要求
将目录“F:\MyDay”文件夹复制到“E:\say”中,其中“F:\MyDay”内部还有文件夹和文件。
2.程序实现
import java.io.*;
public class CopyDemo2 {
public static void main(String[] args) throws IOException{
//创建数据源文件对象
File srcFile = new File("F:\MyDay");
//创建目的地对象
File destFile = new File("E:\say");
//写方法实现
CopyFolder(srcFile,destFile);
}
private static void CopyFolder(File srcFile, File destFile) throws IOException {
//判断源对象是否是目录,如果是还要判断目的路径下是否存在改路径
if (srcFile.isDirectory()){
//创建新的对象
File newFolder = new File(destFile, srcFile.getName());
if (!newFolder.exists()){
newFolder.mkdir();
}
File[] fileArr = srcFile.listFiles();
for (File file:fileArr){
CopyFolder(file,newFolder);
}
}else {
//如果是文件,则复制文件
File file = new File(destFile, srcFile.getName());
copyFile(srcFile,file);
}
}
//字节缓冲流复制文件
private static void copyFile (File srcFile, File destFile) throws IOException {
BufferedInputStream bif = new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bof = new BufferedOutputStream(new FileOutputStream(destFile));
byte[]bys = new byte[1024];
int len;
while ((len=bif.read(bys))!=-1){
bof.write(bys,0,len);
}
}
}