Найти в Дзене
Java

💡 Java совет: рекурсивная обработка файлов с Files.walk

() Если нужно пройтись по всем файлам в директории и её подкаталогах, не пиши рекурсию вручную — используй Files.walk(). Пример: найти все `.java`-файлы в проекте Path startPath = Paths.get("src"); try (Stream<Path> paths = Files.walk(startPath)) { paths .filter(Files::isRegularFile) .filter(path -> path.toString().endsWith(".java")) .forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } Почему это хороший подход: - Рекурсивный обход «из коробки» - Работает через Stream API - Легко фильтровать, маппить и агрегировать - Автоматически закрывает ресурсы (try-with-resources) Полезно для: - анализа исходников - линтеров и кодогенерации - поиска файлов по расширению - утилит и dev-скриптов #Java #IO @javarush

💡 Java совет: рекурсивная обработка файлов с Files.walk()

Если нужно пройтись по всем файлам в директории и её подкаталогах, не пиши рекурсию вручную — используй Files.walk().

Пример: найти все `.java`-файлы в проекте

Path startPath = Paths.get("src");

try (Stream<Path> paths = Files.walk(startPath)) {

paths

.filter(Files::isRegularFile)

.filter(path -> path.toString().endsWith(".java"))

.forEach(System.out::println);

} catch (IOException e) {

e.printStackTrace();

}

Почему это хороший подход:

- Рекурсивный обход «из коробки»

- Работает через Stream API

- Легко фильтровать, маппить и агрегировать

- Автоматически закрывает ресурсы (try-with-resources)

Полезно для:

- анализа исходников

- линтеров и кодогенерации

- поиска файлов по расширению

- утилит и dev-скриптов

#Java #IO

@javarush