Java: чтение части файлов каталогов с начальным индексом и счетчиком - PullRequest
0 голосов
/ 07 сентября 2018

например: в каталоге находится 1 миллиард файлов, я хочу прочитать файлы и получить их данные. Но я не могу найти решение для чтения части из них, потому что 1 миллиард файлов слишком велик и будет вызывать ОМ, я хотите прочитать часть файлов каталога, используя это:

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

как это решить?

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете использовать 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 после каждой итерации, пока не достигнете 1 миллиарда.Я не уверен, что это оптимальный путь, но попробуйте и посмотрите, как он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...