<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Java 列出目錄內容 原文:http://zetcode.com/articles/javalistdirectory/ Java 列表目錄教程顯示了如何以 Java 顯示目錄內容。 ## 目錄定義 目錄是計算機文件系統中用于存儲和定位文件的組織單位。 目錄按層次結構組織成目錄樹。 目錄具有親子關系。 ## Java 列出目錄的類 我們可以使用以下 Java 類列出目錄內容: * `java.nio.file.Files` * `org.apache.commons.io.FileUtils` * `java.io.File` ## 使用`Files.list`非遞歸列出目錄內容 `Files.list()`方法返回`Path`對象的延遲填充流。 該列表不是遞歸的。 `JavaFilesList.java` ```java package com.zetcode; import java.io.File; import java.io.IOException; import java.nio.file.Files; public class JavaFilesList { public static void main(String[] args) throws IOException { String dirName = "/home/janbodnar/prog/"; Files.list(new File(dirName).toPath()) .limit(10) .forEach(path -> { System.out.println(path); }); } } ``` 本示例顯示給定目錄中的十個文件或目錄。 ## 使用`Files.walk`遞歸列出目錄內容 `Files.walk()`方法通過遍歷以給定起始文件為根的文件樹來返回`Paths`的延遲填充流。 `Files.walk()`遞歸遍歷所有子目錄。 `JavaFilesWalk.java` ```java package com.zetcode; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Stream; public class JavaFilesWalkFilter { public static void main(String[] args) throws IOException { try (Stream<Path> paths = Files.walk(Paths.get("/home/janbodnar/prog"))) { paths.filter(Files::isRegularFile) .forEach(System.out::println); } } } ``` 本示例使用`Files.walk()`方法顯示給定目錄的內容。 使用`filter()`方法,我們將目錄的內容過濾為僅包含常規文件。 ## 用 Apache Commons IO 列出目錄內容 Apache commons 的`FileUtils.listFiles()`允許遞歸和非遞歸列出目錄內容。 ```java <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> ``` 對于這個例子,我們需要這種依賴項。 `JavaDirectoryContentsApacheCommons.java` ```java package com.zetcode; import java.io.File; import java.util.List; import org.apache.commons.io.FileUtils; public class JavaDirectoryContentsApacheCommons { public static void main(String[] args) { String dirName = "/home/janbodnar/tmp/"; List<File> files = (List<File>) FileUtils.listFiles(new File(dirName), null, true); files.forEach(System.out::println); } } ``` 該代碼示例使用`FileUtils.listFiles()`遞歸顯示目錄內容。 ```java List<File> files = (List<File>) FileUtils.listFiles(new File(dirName), null, true); ``` `FileUtils.listFiles()`的第一個參數是要列出的目錄名稱。 第二個參數是應與列表匹配的擴展名數組。 如果給出`null`,則返回所有文件。 第三個參數確定列表是否是遞歸的; 即,也搜索所有子目錄。 ## 使用`Files.walkFileTree`非遞歸列出目錄內容 `Files.walkFileTree()`方法遍歷以給定起始文件為根的文件樹。 它使用`FileVisitor`模式來指定遍歷過程中關鍵點的必需行為:訪問文件時,訪問目錄之前,訪問目錄之后或發生故障時。 `JavaWalkFilesTree.java` ```java package com.zetcode; import java.io.File; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.Collections; public class JavaWalkFilesTree { public static void main(String[] args) throws IOException { String dirName = "/home/janbodnar/prog"; File file = new File(dirName); Files.walkFileTree(file.toPath(), Collections.emptySet(), 1, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println(file); return FileVisitResult.CONTINUE; } }); } } ``` 該示例使用`Files.walkFileTree()`非遞歸地遍歷目錄。 ```java Files.walkFileTree(file.toPath(), Collections.emptySet(), 1, new SimpleFileVisitor<Path>() { ``` `Files.walkFileTree()`參數是:起始文件,配置遍歷的選項,要訪問的最大目錄級別數,為每個文件調用的文件訪問者。 在我們的情況下,我們需要遍歷一個目錄級別。 ## 使用`Files.walkFileTree`遞歸列出目錄內容 在下面的示例中,我們使用`Files.walkFileTree()`遍歷整個目錄結構。 `JavaWalkFilesTree.java` ```java package com.zetcode; import java.io.File; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; public class JavaWalkFilesTree { public static void main(String[] args) throws IOException { String dirName = "/home/janbodnar/prog"; File file = new File(dirName); Files.walkFileTree(file.toPath(), new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { System.out.println(file); return FileVisitResult.CONTINUE; } }); } } ``` 該示例使用重載的`Files.walkFileTree()`方法來遞歸遍歷目錄。 ## 使用`File`非遞歸列出目錄內容 `java.io.File`類是一個較舊的 API,用于列出目錄內容。 它沒有前面提到的現代 API 強大。 `File`的`listFiles()`返回給定目錄中的文件對象數組。 `JavaDirectoryContentsFile.java` ```java package com.zetcode; import java.io.File; public class JavaDirectoryContentsFile { public static void main(String[] args) { String dirName = "/home/janbodnar/tmp/"; File fileName = new File(dirName); File[] fileList = fileName.listFiles(); for (File file: fileList) { System.out.println(file); } } } ``` 該示例將給定目錄的內容打印到控制臺。 它不會進入子目錄。 ## 用`File`遞歸列出目錄內容 這次我們使用`java.io.File`類遞歸列出目錄。 `JavaDirectoryContentsFileRecursive.java` ```java package com.zetcode; import java.io.File; import java.util.ArrayList; import java.util.List; public class JavaDirectoryContentsFileRecursive { private static List<File> files = new ArrayList<>(); public static void main(String[] args) { String dirName = "/home/janbodnar/tmp/"; File file = new File(dirName); List<File> myfiles = doListing(file); myfiles.forEach(System.out::println); } public static List<File> doListing(File dirName) { File[] fileList = dirName.listFiles(); for (File file : fileList) { if (file.isFile()) { files.add(file); } else if (file.isDirectory()) { files.add(file); doListing(file); } } return files; } } ``` `doListing()`方法列出目錄的內容。 我們使用`isDirectory()`方法確定文件是否為目錄,然后在每個子目錄上遞歸調用`doListing()`。 在本教程中,我們展示了使用 Java 列出目錄內容的各種方法。 您可能也對以下相關教程感興趣:[以 Java 讀取文本文件](/articles/javareadtext/), [Java 附加到文件](/articles/javaappendtofile/),[以 Java 復制文件](/java/copyfile/), [Java 教程](/lang/java/) ,[用 Java8 的`StringJoiner`連接字符串](/articles/java8stringjoiner/) ,[Java 讀取頁面](/articles/javareadwebpage/)或 [Google Guava 簡介](/articles/guava/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看