Добавить в корзинуПозвонить
Найти в Дзене
Java

☕ Java совет: рекурсивный обход файловой системы

В Java есть удобный способ рекурсивно обойти все файлы в директории - метод Files.walk(). Он возвращает Stream<Path>, что позволяет легко фильтровать и обрабатывать файлы через Stream API. Пример - найти все .java файлы в папке src: import java.io.IOException; import java.nio.file.*; import java.util.stream.Stream; public class Main { public static void main(String[] args) { 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(); } } } Что происходит: • Files.walk(startPath) - рекурсивно проходит по всем папкам • filter(Files::isRegularFile) - оставляет только файлы • endsWith(".java") - фильтр по расширению • forEach - обработка найденных файлов Это намного чище, чем писать собственную рекурсивную функцию обхода директорий. #Java #JavaDev #Programming ⚡️ Полезные ресурсы по Java 🚀

☕ Java совет: рекурсивный обход файловой системы

В Java есть удобный способ рекурсивно обойти все файлы в директории - метод Files.walk().

Он возвращает Stream<Path>, что позволяет легко фильтровать и обрабатывать файлы через Stream API.

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

import java.io.IOException;

import java.nio.file.*;

import java.util.stream.Stream;

public class Main {

public static void main(String[] args) {

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();

}

}

}

Что происходит:

• Files.walk(startPath) - рекурсивно проходит по всем папкам

• filter(Files::isRegularFile) - оставляет только файлы

• endsWith(".java") - фильтр по расширению

• forEach - обработка найденных файлов

Это намного чище, чем писать собственную рекурсивную функцию обхода директорий.

#Java #JavaDev #Programming

⚡️ Полезные ресурсы по Java 🚀 Max

@javarush