当前位置: 首页 > 面试题库 >

递归列出Java中的文件

宗政小林
2023-03-14
问题内容

如何在Java目录中递归列出所有文件?框架是否提供任何实用程序

我看到了很多hacky的实现。但是框架或nio都没有


问题答案:

Java 8提供了一个不错的流来处理树中的所有文件。

Files.walk(Paths.get(path))
        .filter(Files::isRegularFile)
        .forEach(System.out::println);

这提供了一种遍历文件的自然方法。由于它是流,因此你可以对结果进行所有不错的流操作,例如限制,分组,映射,提早退出等。

更新:我可能会指出,还有Files.find带有BiPredicate,如果需要检查文件属性,该BiPredicate可能会更高效。

Files.find(Paths.get(path),
           Integer.MAX_VALUE,
           (filePath, fileAttr) -> fileAttr.isRegularFile())
        .forEach(System.out::println);

请注意,尽管JavaDoc排除了此方法可能比Files.walk更有效的方法,但实际上是相同的,但是如果你还在过滤器中检索文件属性,则可以观察到性能差异。最后,如果需要过滤属性,请使用Files.find,否则请使用Files.walk,这主要是因为有重载并且它更方便。



 类似资料:
  • 问题内容: 我有此功能,以递归方式打印目录中所有文件的名称。问题是我的代码很慢,因为它每次迭代都必须访问远程网络设备。 我的计划是先从目录中递归加载所有文件,然后再使用正则表达式遍历所有文件,以过滤掉我不需要的所有文件。有谁有更好的建议? 这只是稍后的测试,我将不使用这样的代码,而是将与高级正则表达式匹配的每个文件的路径和修改日期添加到数组中。 问题答案: 假设这是你将要编写的实际生产代码,那么我

  • 我想列出指定目录中的所有文件以及该目录中的子目录。不应列出任何目录。 我该怎么解决这个?

  • 本文向大家介绍java实现递归文件列表的方法,包括了java实现递归文件列表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了java实现递归文件列表的方法。分享给大家供大家参考。具体如下: FileListing.java如下: 希望本文所述对大家的java程序设计有所帮助。

  • 我需要为链表队列实现一个toString()递归方法。我知道我的toString方法在我上周做的一个链表实现中工作得很好,所以我在处理它的队列方面出了问题。 我的QueueList的toString方法: 以及我的构造函数,例如QueueList: 我试图用这个测试看看里面发生了什么: 与输出 我意识到这是因为我说的是前面的在方法的递归部分,但即使我将其更改为,我的输出是 这可能与我的排队和退队方

  • 问题内容: 假设我有一个目录中,其中有3个符号连接其他目录 ,和。我想列出中的所有文件,包括在那些,和。 为了更通用,我想列出所有文件,包括目录中的符号链接文件。,等停止在符号链接上,而无需导航到它们以进一步列出。 问题答案: 该选项将完成您想要的。它取消引用符号链接。 因此,您的命令将是: 您也可以使用 该选项指示find跟随符号链接到目录。 在Mac OS X上使用 如已弃用。

  • 所需输出: 我如何使用递归来完成这件事呢?我的代码思想是: 我对在if语句和system.out.println()中返回什么感到困惑,因为数字5不会随着它的停留而减少/增加例如,它将垂直停留5,我该如何处理这个问题呢?我的代码更多的是一个说明,只是为了证明我在做这件事。