字符流复制单级文件夹/多级文件夹(基础)

将 “E:/练习用” 中的文件复制到 “com.idea_primary” 文件夹下。

public class CopyFolderDemo {
    
    
    //复制单级文件夹
    public static void main(String[] args) throws IOException {
    
    
        File srcFolder = new File("E:\\练习用");
        String srcFolderName = srcFolder.getName();
        File destFolder = new File("com.idea_primary", srcFolderName);
        if (!srcFolder.exists()) {
    
    
            srcFolder.mkdir();
        }
        File[] listFiles = srcFolder.listFiles();
        for (File srcFile : listFiles) {
    
    
            String srcFileName = srcFile.getName();
            File file2 = new File(destFolder, srcFileName);
            copyFile(srcFile, file2);
        }
    }

    private static void copyFile(File srcFile, File file2) throws IOException {
    
    
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file2));
        byte[] b = new byte[1024];
        int len;
        while ((len = bis.read(b)) != -1) {
    
    
            bos.write(b, 0, len);
        }
        bos.close();
        bis.close();
    }
}
public class CopyFoldersDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        //复制多级文件
        File srcFile = new File("E:\\练习用");
        File destFile = new File("com.idea_primary\\");
        copyFolder(srcFile, destFile);
    }

    private static void copyFolder(File srcFile, File destFile) throws IOException {
    
    
        if (srcFile.isDirectory()) {
    
    
            String srcFileName = srcFile.getName();
            File newFoler = new File(destFile, srcFileName);
            if (!newFoler.exists()) {
    
    
                newFoler.mkdir();
            }
            File[] fileArray = srcFile.listFiles();
            for (File file : fileArray) {
    
    
                copyFolder(file, newFoler);
            }
        } else {
    
    
            File newFile = new File(destFile,srcFile.getName());
            copyFile(srcFile,newFile);
        }
    }


    private static void copyFile(File srcFile, File destFile) throws IOException {
    
    
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));
        byte[] b = new byte[1024];
        int len;
        while ((len = bis.read(b)) != -1) {
    
    
            bos.write(b, 0, len);
        }
        bos.close();
        bis.close();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45380885/article/details/113872013
今日推荐