• IO流案例:1.复制多级文件夹 2.删除多级文件夹


    package copy;
    /*
        需求:复制多级文件夹
            复制d:\itcast(包含文件和子文件夹)到模块目录下
        分析:
            d:\itcast
                a.txt
                b.txt
                javaweb
                    a.xml
                    b.xml
            模块\itcast
                javaweb
                    a.xml
                    b.xml
                a.txt
                b.txt
        思路:
            1.判断源文件是目录还是文件
            2.是目录:
                1.源目录名+目的目录,创建新目录File对象
                2.判断新目录File是否存在,不存在则创建
                3.获取源目录文件列表
                4.遍历得到每个源文件对象
                5.递归调用copyFolder方法
            3.是文件:
                复制源文件到目的目录
     */
    
    import java.io.*;
    
    public class CopyFolder {
        public static void main(String[] args) throws IOException {
            //创建源目录
            File srcFolder = new File("d:\itcast");
            //创建目的目录
            File dstFolder = new File("day10Home");
    
            //调用复制方法,复制目录或文件
            copyFolder(srcFolder, dstFolder);
        }
    
        /**
         * 文件是否存在的检查工作,应该由方法调用者保证。
         * @param src
         * @param dst
         * @throws IOException
         */
        private static void copyFolder(File src, File dst) throws IOException {
            //1.是目录
            if(src.isDirectory()){
                //1.源目录名+目的目录,创建新目录File对象
                File newFolder = new File(dst, src.getName());
    
                //2.判断新目录File是否存在,不存在则创建
                if(!newFolder.exists())
                    newFolder.mkdir();
    
                //3.获取源目录文件列表
                File[] fileArray = src.listFiles();
    
                //4.遍历得到每个源文件对象
                for(File srcFile : fileArray){
                    //5.递归调用copyFolder方法
                    copyFolder(srcFile, newFolder);
                }
            }else{
                // 2.是文件,根据目的目录+源文件名,创建新文件
                File newFile = new File(dst, src.getName());
                copyFile(src, newFile);
            }
        }
    
        private static void copyFile(File srcFile, File newFile) throws IOException {
            //  创建字节缓冲流对象
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
    
            //  读写数据,一次读写一个字节数组
            byte[] bys = new byte[1024];
            int len;
            while((len = bis.read(bys)) != -1){
                bos.write(bys, 0, len);
            }
    
            //  释放资源
            bos.close();
            bis.close();
        }
    }
    

      案例2:删除多级文件夹

     1 package deletefolder;
     2 
     3 import java.io.File;
     4 
     5 /*
     6     需求:
     7         将d:\itcast多级文件夹删除
     8     d:\itcast
     9         javaweb
    10             a.xml
    11         a.txt
    12         b.txt
    13     思路:
    14         1.是否是目录
    15         是目录:
    16             2.获取文件列表
    17             3.遍历文件列表得到每个文件对象
    18             4.递归调用删除方法,删除目录中的每一项内容
    19         2.直接删除src,此时src要么是空目录,要么是文件。
    20 
    21  */
    22 public class DeleteFolder {
    23     public static void main(String[] args) {
    24         //创建要删除的多级目录
    25         File file = new File("day10Home\itcast");
    26 
    27         //调用方法删除多级目录
    28         deleteFolder(file);
    29 
    30     }
    31 
    32     private static void deleteFolder(File src) {
    33         //1.是否是目录
    34         if(src.isDirectory()){
    35             //2.获取文件列表
    36             File[] fileArray = src.listFiles();
    37 
    38             //3.遍历文件列表得到每个文件对象
    39             for(File file : fileArray){
    40                 //4.递归调用删除方法,删除目录中的每一项内容
    41                 deleteFolder(file);
    42             }
    43         }
    44         //5.将src删除,此时src要么是空目录,要么是文件。
    45         src.delete();
    46     }
    47 }
  • 相关阅读:
    财务自由之路
    权力的48条法则
    将进酒
    DELL服务器报价,有公司需要可以联系,谢谢。北京经纬恒通商贸有限公司秦嘉俊
    实战HTML5表单
    《HTML5+CSS3精通》
    行路难
    事件入门
    DOM
    剑指offer---包含min函数的栈
  • 原文地址:https://www.cnblogs.com/mozq/p/10651956.html
Copyright © 2020-2023  润新知