溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK7新特性之遍歷文件樹的示例分析

發布時間:2021-12-17 14:06:39 來源:億速云 閱讀:181 作者:小新 欄目:編程語言

這篇文章主要介紹JDK7新特性之遍歷文件樹的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

有時需要遞歸遍歷一個文件樹,比如查找一個文件夾內符合條件的文件,查找某一天創建的文件……。jdk7 nio包提供一個新的接口 FileVisitor。它提供了遍歷文件樹的各種操作。

preVisitDirectory - 一個路徑被訪問時調用

PostVisitDirectory - 一個路徑的所有節點被訪問后調用。如果有錯誤發生,exception會傳遞給這個方法

visitFile - 文件被訪問時被調用。該文件的文件屬性被傳遞給這個方法

visitFileFailed - 當文件不能被訪問時,此方法被調用。Exception被傳遞給這個方法。

如果你比較懶,不想實現所有方法。你可以選擇繼承 SimpleFileVisitor。它幫你實現了上述方法,你只需Override 你感興趣的方法。

下面給個例子,簡單地遍歷一個文件夾,打印出所有信息

Java代碼

import java.io.IOException;     import java.nio.file.FileVisitResult;     import java.nio.file.Files;     import java.nio.file.Path;     import java.nio.file.Paths;     import java.nio.file.SimpleFileVisitor;     import java.nio.file.attribute.BasicFileAttributes;         /**     * @author kencs@foxmail.com     */    public class FileVisitorTest extends SimpleFileVisitor {                  private void find(Path path){             System.out.printf("訪問-%s:%s%n",(Files.isDirectory(path)?"目錄":"文件"),path.getFileName());         }         @Override        public FileVisitResult visitFile(Path file,BasicFileAttributes attrs){             find(file);             return FileVisitResult.CONTINUE;         }                  @Override        public FileVisitResult preVisitDirectory(Path dir,BasicFileAttributes attrs){             find(dir);             return FileVisitResult.CONTINUE;         }                  @Override        public FileVisitResult visitFileFailed(Path file,IOException e){             System.out.println(e);             return FileVisitResult.CONTINUE;         }                  public static void main(String[] args) throws IOException{             if(args.length!=1){                 System.out.println("請輸入一個文件路徑作為參數");                 System.exit(-1);             }             Files.walkFileTree(Paths.get( args[0]), new FileVisitorTest());         }     }

隨便選擇一個路徑作為參數

java FileVisitorTest "C:\\Program Files\\Java\\jre7\\bin"

運行結果代碼

訪問-目錄:bin     訪問-文件:awt.dll     訪問-文件:axbridge.dll     訪問-目錄:client     訪問-文件:classes.jsa     訪問-文件:jvm.dll     訪問-文件:Xusage.txt     訪問-文件:dcpr.dll     訪問-文件:deploy.dll     訪問-文件:deployJava1.dll     訪問-文件:dt_shmem.dll     訪問-文件:dt_socket.dll     ......

注意 FileVisitResult有四種

CONTINUE –繼續

TERMINATE –終止,這次遍歷結束了

SKIP_SUBTREE –子樹(當前路徑的子目錄)不再遍歷了

SKIP_SIBLINGS –兄弟節點(同級別目錄)不再訪問了。

可以通過這些返回值來控制遍歷文件樹的流程

以上是“JDK7新特性之遍歷文件樹的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女