繁体   English   中英

使用 Java 8 查找文件的最佳方法是什么?

[英]What is the best way to find files using Java 8?

我想从目录中读取文件

这一切都以(例如:就像我们有一个以名称开头的列表一样)

  • 以“abcd_”开头

  • 以“Proto_”开头

  • 以“foo_”开头

  • 以“2020”开头

  • 以。。开始....

    另一个条件是以“.txt”结尾

现在假设在目标目录中,我们有数千个文件。

那么让所有文件与所述条件匹配的有效方法是什么。

**注意:Startswith 是一个动态列表和目标目录,每天都在加载大量文件,但在 MAX 时会有一个且只有一个对应的文件匹配,即使文件数量在增加 **

我写了一个原型

Map<String,String> getFilesMap(Path path)    
{
Map<String, String> fatchedFileMap = new HashMap<>();
    
    List<String> fileNamePrefixes = getFileNamePrefixes();
    
   //Using File Filter implementation
    path.toFile().listFiles( (dir, fileName) -> {

        for (String fileNamePrefix : fileNamePrefixes) {
            if (fileName.endsWith (".txt") && fileName.startsWith(fileNamePrefix)))
             {
                fatchedFileMap.put(fileNamePrefix, fileName);
                return true;//does nothing 
            }
        }
        return false;//does nothing 
    });

    return fatchedFileMap;
}

这给了我所有名称与前缀匹配的文件(提供的列表)

但是如果有的话,正在寻找更多更好的方法。

我不想介绍任何第三方库,但仍然欢迎所有解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM