Метод iterator
Метод iterator класса Path возвращает объект Iterator<Path>,
который позволяет перебирать элементы составного пути по порядку - от корневого
элемента к конечному файлу или папке. Каждый элемент итерации представляет
собой отдельный объект Path. Метод не принимает параметров.
Итератор работает только для чтения, а исходный объект пути не изменяется.
Синтаксис
Iterator<Path> iterator = path.iterator();
Пример
Давайте создадим путь и переберём все его элементы с помощью итератора:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
Iterator<Path> iterator = path.iterator();
while (iterator.hasNext())
{
Path element = iterator.next();
System.out.println(element);
}
}
}
Результат выполнения кода:
"home"
"user"
"docs"
"file.txt"
Пример
Давайте используем цикл for-each для перебора элементов пути.
Такой подход работает благодаря тому, что Path реализует интерфейс Iterable<Path>:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("12345/abcde/file.txt");
for (Path element : path)
{
System.out.println(element);
}
}
}
Результат выполнения кода:
"12345"
"abcde"
"file.txt"
Пример
Давайте посчитаем количество элементов в пути с помощью итератора:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Iterator;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
Iterator<Path> iterator = path.iterator();
int count = 0;
while (iterator.hasNext())
{
iterator.next();
count++;
}
System.out.println(count);
}
}
Результат выполнения кода:
4
Смотрите также
-
класс
Path,
который представляет путь к файлу или папке -
метод
getFileName,
который возвращает имя файла или папки -
метод
getNameCount,
который возвращает количество элементов в пути -
метод
getParent,
который возвращает родительский путь