Java IO之File

FILE類是用來實現獲取文件、文件夾的類庫工具,File並不是像類名所表示的那樣只是用來表示文件,它還能夠用來表示文件夾。因此能夠用File來獲取一個目錄下的全部文件,甚至是文件夾中的文件。
一個簡單的獲取當前文件目錄下全部文件及文件夾的方法java

public static void dir() {
        File dir = new File(".");// "."表示當前文件所在目錄
        String[] files = dir.list();// 獲取該路徑下全部的文件數組
        for (String s : files)
            System.out.println(s);
    }

也能夠經過這種方式,遞歸實現獲取指定目錄及全部子孫目錄下全部文件樹。正則表達式

public static void allFiles(String path, int layer) {
        File file = new File(path);// 根據路徑建立目錄
        String[] files = file.list();
        File temp;
        for (String s : files) {
            String p = path + "/" + s;// 構造新路徑
            for (int i = 0; i < layer; i++)
                System.out.print("\t");
            System.out.println("|-" + s);
            temp = new File(p);
            if (temp.isDirectory())// 若是該File是目錄(即文件夾),則遞歸顯示該目錄下的文件
                allFiles(p, layer + 1);
        }
    }

其中layer參數用來表示目錄的深度,方便根據文件樹的深度進行縮進輸出。數組

若是須要對文件目錄進行刪選,則給list()方法提供一個實現FilenameFilter接口的對象,而且重寫其中的accept()方法,用正則表達式對文件名進行匹配。markdown

public static void fileFilter() {
        File file = new File(".");
        String files;
        for (String s : file.list(new FilenameFilter() {// 經過匿名內部類實現一個FilenameFilter一個實例,並實現其中的accept方法

                    @Override
                    public boolean accept(File dir, String name) {
                        return Pattern.compile(".*\\.java").matcher(name)
                                .matches();// 經過正則表達式,對文件名進行匹配,匹配以".java"結尾的文件
                    }

                })) {
            System.out.println(s);
        }
    }

File類中有以下經常使用方法:ide

public String getName();    //獲取文件名
public String getParent();//獲取其父路徑
public String getAbsolutePath();//獲取其在計算機中的絕對路徑
public boolean canRead();//文件是否可讀
public boolean canWrite();//文件是否能夠寫
public boolean canExecute();//文件是否可執行
public boolean exists();//文件是否存在
public boolean isDirectory();//是不是文件夾(目錄)
public boolean isFile();//是不是文件
public boolean isHidden();//是否隱藏
public long length();//得到文件長度
public boolean createNewFile();//建立新文件
public boolean delete();//刪除該文件
相關文章
相關標籤/搜索