使用文件api读取目录:如何处理包含20000-30000个文件的目录?

Sud*_*kar 3 java directory iteration file-io

我正在编写一个简单的java程序,它读取目录的内容并打印出文件名和最后修改时间.

我认为的问题是,我正在阅读的保险库非常庞大,并且在某些情况下,单个目录中的文件可能会超过20000.使用文件api

    `file.listFiles()` 
Run Code Online (Sandbox Code Playgroud)

会创建20000个文件对象,我担心这可能会减慢进程,也可能是内存膨胀.

有没有办法批量即告诉java一次扫描目录50个文件或至少一次迭代一个文件而不是一次加载内存中的所有对象

Jer*_*ome 5

您应该通过java.nio.file.Files.walkFileTree(...)使用java.nio.file.FileVisitor.它已经在Java 7中引入了这个用例.