Java IO之File,javaiofile

來源:互聯網
上載者:User

Java IO之File,javaiofile

FILE類是用來實現擷取檔案、檔案夾的類庫工具,File並非像類名所表示的那樣只是用來表示檔案,它還可以用來表示檔案夾。所以可以用File來擷取一個目錄下的所有檔案,甚至是檔案夾中的檔案。
一個簡單的擷取當前檔案目錄下所有檔案及檔案夾的方法

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()方法,用Regex對檔案名稱進行匹配。

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();// 通過Regex,對檔案名稱進行匹配,匹配以".java"結尾的檔案                    }                })) {            System.out.println(s);        }    }

File類中有如下常用方法:

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();//刪除該檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.