РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
812 of 1163 menu

Метод list

Метод list класса Files возвращает поток Stream<Path>, содержащий элементы директории, переданной в первом параметре. В первый параметр мы передаем путь к директории (типа Path). Второй параметр необязательный и задает параметры обхода директории через LinkOption (например, LinkOption.NOFOLLOW_LINKS). Метод не рекурсивный: возвращаются только элементы самой директории, без захода во вложенные поддиректории. Поток нужно закрывать, поэтому обычно его используют в try-with-resources.

Синтаксис

Files.list(dir, [options])

Пример

Давайте создадим директорию и выведем список ее элементов:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path dir = Files.createTempDirectory("test"); Files.createFile(dir.resolve("a.txt")); Files.createFile(dir.resolve("b.txt")); Files.createFile(dir.resolve("c.txt")); try (Stream<Path> stream = Files.list(dir)) { stream.forEach(System.out::println); } } }

Результат выполнения кода:

/tmp/test123/a.txt /tmp/test123/b.txt /tmp/test123/c.txt

Пример

Давайте выведем только имена файлов, а не полные пути:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path dir = Files.createTempDirectory("test"); Files.createFile(dir.resolve("a.txt")); Files.createFile(dir.resolve("b.txt")); Files.createFile(dir.resolve("c.txt")); try (Stream<Path> stream = Files.list(dir)) { stream.map(Path::getFileName) .forEach(System.out::println); } } }

Результат выполнения кода:

"a.txt" "b.txt" "c.txt"

Пример

Давайте посчитаем количество элементов в директории:

import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.stream.Stream; public class Main { public static void main(String[] args) throws IOException { Path dir = Files.createTempDirectory("test"); Files.createFile(dir.resolve("a.txt")); Files.createFile(dir.resolve("b.txt")); Files.createFile(dir.resolve("c.txt")); try (Stream<Path> stream = Files.list(dir)) { long res = stream.count(); System.out.println(res); } } }

Результат выполнения кода:

3

Смотрите также

  • класс Files,
    который содержит методы для работы с файлами
  • метод walk,
    который рекурсивно обходит директорию
  • метод find,
    который ищет файлы по условию
  • метод isDirectory,
    который проверяет, является ли путь директорией
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить