Java IO之复制文件夹中的所有内容

import java.io.*;

public class Copy {
    public static void main(String[] args) throws IOException{
        File file1=new File("C:\\Users\\master\\Desktop\\FlappyBird");//源文件夹
        File file2=new File("C:\\Users\\master\\Desktop\\表情包");//目标文件夹
        file2.mkdirs();//创建目标文件夹
        copy(file1,file2);//开始进行复制操作
    }
    public static void copy(File file1,File file2) throws IOException{
        File[] files=file1.listFiles();//获取源文件夹下的所有抽象路径名
        for (File file:files) {//开始遍历源文件夹
            if(file.isDirectory()){//如果遍历到了文件夹
                File file3=new File(file2,file.getName());//以目标文件夹为父目录创建抽象路径名
                file3.mkdir();//创建文件夹
                copy(file,file3);//递归复制整个文件夹
            }else if(file.isFile()){//如果遍历到了文件
                File file3=new File(file2,file.getName());//以目标文件夹为父目录创建抽象路径名
                if(file3.exists()){
                    file3.createNewFile();//创建文件
                }
                //对源文件夹下的文件和目标文件夹下新创建的文件进行复制操作
                BufferedInputStream bufferedInputStream=new BufferedInputStream(new FileInputStream(file));
                BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(file3));
                byte[]bytes=new byte[1024];
                int len=bufferedInputStream.read(bytes,0,1024);
                while(len!=-1){
                    bufferedOutputStream.write(bytes,0,len);
                    len=bufferedInputStream.read(bytes,0,len);
                }
                bufferedOutputStream.close();
                bufferedInputStream.close();
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/wujunlulu/article/details/81944584
今日推荐