Java:使用开始索引和计数读取部分目录文件

时间:2018-09-07 10:31:21

标签: java io

例如:目录中有10亿个文件,我想读取文件并获取其数据。但是我找不到读取其中一部分的解决方案,因为10亿个文件太大,会导致oom,我想要使用这样的方式读取部分目录文件:

FileUtils.getFils("directory path",startIndex,readCount);

如何解决?

1 个答案:

答案 0 :(得分:0)

您可能要为此使用Files#walk

try {
    Files.walk(Paths.get(directoryPath))
            .filter(p -> p.toFile().isFile()) // read only files
            .skip(OFFSET)
            .limit(MAX_FILES_PER_ITERATION)
            .forEach(entry -> ... // do you processing here);
} catch (IOException e) {
    // add your exception handling here
    e.printStackTrace(System.err);
}

只需将其添加到循环中,并在每次迭代后递增OFFSET,直到达到10亿。我不确定这是否是最佳方法,但是请尝试一下,看看它是如何工作的。