[知了堂學習筆記]_IO流之File類的應用

案例:

創建目錄
先要創建File類對象
調用mkdirs
測試是否創建好目錄—-利用JUnit來測試

/*
     * 創建目錄
     */
    @Test
    public void m01(){
        File file = new File("D:\\File\\Music");
        file.mkdirs();
    }

創建文件
先要創建File類對象
調用creatNewFile

/*
     * 創建文件
     */
    @Test
    public void m02() throws IOException{
        File directory = new File("D:\\File\\Music");
        File file = new File(directory,"測試.docx");
        if(!directory.exists()){
            directory.mkdirs();
        }
        file.createNewFile();
    }

刪除目錄

/*
     * 刪除目錄
     * 先判斷目錄下是否有文件----如果有文件,目錄刪除不了
     */
    @Test
    public void m03(){
        File directory = new File("D:\\File\\Music");
        if(!directory.exists()){
            return;//目錄不存在則終止方法
        }
        File[] files = directory.listFiles();//返回music目錄下的文件
        if(files.length>0){
            for(File file : files){
                if(file.isFile()){
                    file.delete();//刪除文件
                }
            }
        }
        directory.delete();
    }

獲取一級目錄

/*
     * 獲取一級目錄
     *
     */
    @Test
    public void m04(){
        File directory = new File("D:\\學習視頻\\jQuery\\jQuery\\2016-3-14 jQuery入門");
        File[] files = directory.listFiles();
        for(File file : files){
            System.out.println(file.getName());
        }
    }

獲取文件大小

/*
     * 獲取文件大小
     */
    @Test
    public void m05(){
        File file = new File("D:\\學習視頻\\課堂講義.docx");
        if(file.isFile()){
            System.out.println(file.length());//輸出文件的字節大小
        }
    }

獲取文件路徑

    /*
     * 獲取文件路徑
     */
    @Test
    public void m06(){
        File file = new File("D:\\File\\Test");
        String path = file.getPath();
        System.out.println("path:"+path);
        String absolutePath = file.getAbsolutePath();
        System.out.println("absolutePath:"+absolutePath);
        File fpath = file.getAbsoluteFile();
        System.out.println("fpath:"+fpath);
    }

遞歸:

/*
     * 遞歸:1+2+...+100
     */
    @Test
    public void m07(){
        int count = add(0,100);
        System.out.println("count:"+count);
    }
    public int add(int sum,int n){
        sum += n;
        n--;
        if(n == 0){
            return sum;
        }else{
            return add(sum,n);
        }   
    }

利用遞歸去完成把一個目錄進行輸出(文件、目錄)

/*
     * 利用遞歸去完成把一個目錄進行輸出(文件、目錄)
     */
    @Test
    public void m08(){
        showDirectory(new File("D:\\學習視頻"));
    }
    public void showDirectory(File file){
        File[] files = file.listFiles();
        if(files.length == 0){
            return;//終止方法
        }
        for(File tmp : files){          
            if(tmp.isFile()){
                System.out.println("文件:"+tmp.getName());
            }else if(tmp.isDirectory()){
                System.out.println("目錄:"+tmp.getName());
                showDirectory(tmp);
            }
        }
    }

計算一個目錄的大小

/*
     * 計算一個目錄的大小
     */
    @Test
    public void m09(){
        showDirectorySize(new File("D:\\學習視頻"));
        System.out.println("size:"+size);
    }
    private long size = 0;//初始化一個目錄的大小
    public void showDirectorySize(File file){
        if(file == null){//判斷要遍歷的目錄是否爲null
            return;
        }
        File[] files = file.listFiles();
        if(files.length == 0 || files == null){//判斷子目錄是否爲null或者沒有文件存在
            return;
        }
        for(File tmp : files){
            if(tmp.isFile()){
                System.out.println("文件:"+tmp.getName());
                size += tmp.length();
            }else if(tmp.isDirectory()){
                System.out.println("目錄:"+tmp.getName());
                showDirectorySize(tmp);
            }
        }
    }

請關注“知了堂學習社區”,地址:http://www.zhiliaotang.com/portal.php

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章