java-IO-文件工具类-文件(夹)复制和删除

import java.io.*;

public class FileUtil {

    /**
     * @Description //一个文件复制到另一个文件夹
     * @Param [srcPath, destPath]
     * @return void
     */
    public static void copyPic(String srcPath, String destPath){
        // 打开输入流
        FileInputStream fis = null;
        try {
            File file1 = new File(srcPath);
            //存在才执行
            if(file1.exists()){
                File file = new File(destPath);
                if(!file.exists()){
                    file.getParentFile().mkdirs();
                    file.createNewFile();
                }
                fis = new FileInputStream(srcPath);
                // 打开输出流
                FileOutputStream fos = new FileOutputStream(file);
                // 读取和写入信息
                int len = 0;
                // 创建一个字节数组,当做缓冲区
                byte[] b = new byte[1024];
                while ((len = fis.read(b)) != -1) {
                    fos.write(b, 0, len);
                }
                // 关闭流  先开后关  后开先关
                fos.close(); // 后开先关
                fis.close(); // 先开后关
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * @Description //文件夹复制
     * @Param [sourcePath, newPath]
     * @return void
     */
    public static void copyDir(String sourcePath, String newPath){
        File file = new File(sourcePath);
        String[] filePath = file.list();
        if (!(new File(newPath)).exists()) {
            (new File(newPath)).mkdir();
        }
        if(filePath != null && filePath.length > 0){
            for (int i = 0; i < filePath.length; i++) {
                if ((new File(sourcePath + file.separator + filePath[i])).isDirectory()) {
                    copyDir(sourcePath  + file.separator  + filePath[i], newPath  + file.separator + filePath[i]);
                }
                if (new File(sourcePath  + file.separator + filePath[i]).isFile()) {
                    copyFile(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
                }
            }
        }
    }

    /**
     * @Description //文件复制
     * @Param [oldPath, newPath]
     * @return void
     */
    private static void copyFile(String oldPath, String newPath){
        File oldFile = new File(oldPath);
        File file = new File(newPath);
        FileInputStream in = null;
        try {
            in = new FileInputStream(oldFile);
            FileOutputStream out = new FileOutputStream(file);;
            byte[] buffer=new byte[2097152];
            int readByte = 0;
            while((readByte = in.read(buffer)) != -1){
                out.write(buffer, 0, readByte);
            }
            in.close();
            out.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }



    //删除文件夹
    public static void delFolder(String folderPath) {
        try {
            delAllFile(folderPath); //删除完里面所有内容
            String filePath = folderPath;
            filePath = filePath.toString();
            java.io.File myFilePath = new java.io.File(filePath);
            myFilePath.delete(); //删除空文件夹
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //删除指定文件夹下所有文件
    public static boolean delAllFile(String path) {
        boolean flag = false;
        File file = new File(path);
        if (!file.exists()) {
            return flag;
        }
        if (!file.isDirectory()) {
            return flag;
        }
        String[] tempList = file.list();
        File temp = null;
        for (int i = 0; i < tempList.length; i++) {
            if (path.endsWith(File.separator)) {
                temp = new File(path + tempList[i]);
            } else {
                temp = new File(path + File.separator + tempList[i]);
            }
            if (temp.isFile()) {
                temp.delete();
            }
            if (temp.isDirectory()) {
                delAllFile(path + "/" + tempList[i]);//先删除文件夹里面的文件
                delFolder(path + "/" + tempList[i]);//再删除空文件夹
                flag = true;
            }
        }
        return flag;
    }
}

你可能感兴趣的:(基础,java,工具类)