Spec-Zone.ru › OpenJDK 21

Путь к интерфейсу

Все суперинтерфейсы:
Comparable<Path>, Iterable<Path>, Watchable
public interface Path extends Comparable<Path>, Iterable<Path>, Watchable
Объект, который может использоваться для поиска файла в файловой системе. Обычно он представляет собой зависящий от системы путь к файлу.

Path представляет собой путь, который является иерархическим и состоит из последовательности элементов имен каталогов и файлов, разделенных специальным разделителем. Также может присутствовать корневой компонент, который идентифицирует иерархию файловой системы. Элемент имени, который находится дальше всего от корня иерархии каталогов, является именем файла или каталога. Другие элементы имени — это имена каталогов. Path может представлять корень, корень и последовательность имен или просто один или несколько элементов имени. Path считается пустым путем, если он состоит только из одного пустого элемента имени. Доступ к файлу с помощью пустого пути эквивалентен доступу к каталогу по умолчанию файловой системы. Path определяет методы getFileName, getParent, getRoot и subpath для доступа к компонентам пути или подпоследовательности его элементов имени.

В дополнение к доступу к компонентам пути, Path также определяет методы resolve и resolveSibling для объединения путей. Метод relativize может быть использован для построения относительного пути между двумя путями. Пути могут быть compared и сравниваться друг с другом с использованием методов startsWith и endsWith.

Данный интерфейс расширяет интерфейс Watchable, чтобы каталог, расположенный по пути, мог быть registered с помощью WatchService и в нём отслеживались записи.

ПРЕДУПРЕЖДЕНИЕ: Этот интерфейс предназначен только для реализации при разработке пользовательских реализаций файловой системы. В будущих версиях могут быть добавлены методы в этот интерфейс.

Доступ к файлам

Пути могут использоваться с классом Files для работы с файлами, каталогами и другими типами файлов. Например, предположим, что нам нужен BufferedReader для чтения текста из файла "access.log". Файл находится в каталоге "logs" относительно текущей рабочей директории и закодирован в UTF-8.

    Path path = FileSystems.getDefault().getPath("logs", "access.log");
    BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8);

Взаимодействие

Пути, связанные с по умолчанию provider, как правило, совместимы с классом java.io.File. Пути, созданные другими поставщиками, вряд ли будут совместимы с абстрактными именами путей, представленными java.io.File. Метод toPath может быть использован для получения Path из абстрактного имени пути, представленного объектом java.io.File. Результирующий Path может быть использован для работы с тем же файлом, что и объект java.io.File. Кроме того, метод toFile полезен для построения File из представления String объекта Path.

Конкурентность

Реализации этого интерфейса неизменяемы и безопасны для использования в нескольких потоках.

С:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
int compareTo(Path other)
Сравнивает два абстрактных пути лексикографически.
default boolean endsWith(String other)
Проверяет, заканчивается ли этот путь Path, построенным путём преобразования указанной строки пути, точно так же, как определено в методе endsWith(Path).
boolean endsWith(Path other)
Проверяет, заканчивается ли этот путь заданным путём.
boolean equals(Object other)
Проверяет равенство этого пути заданному объекту.
Path getFileName()
Возвращает имя файла или каталога, обозначенного этим путём, как объект Path.
FileSystem getFileSystem()
Возвращает файловую систему, которая создала этот объект.
Path getName(int index)
Возвращает элемент имени этого пути в виде объекта Path.
int getNameCount()
Возвращает количество элементов имени в пути.
Path getParent()
Возвращает родительский путь или null если у этого пути нет родителя.
Path getRoot()
Возвращает корневой компонент этого пути как объект Path, или null если у этого пути нет корневого компонента.
int hashCode()
Вычисляет хэш-код для этого пути.
boolean isAbsolute()
Определяет, является ли этот путь абсолютным.
default Iterator<Path> iterator()
Возвращает итератор по элементам имени этого пути.
Path normalize()
Возвращает путь, в котором устранены избыточные элементы имени.
static Path of(String first, String... more)
Возвращает Path путём преобразования строки пути или последовательности строк, которые при объединении образуют строку пути.
static Path of(URI uri)
Возвращает Path путём преобразования URI.
default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events)
Регистрирует файл, расположенный по этому пути, в службе наблюдения.
WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)
Регистрирует файл, расположенный по этому пути, в службе наблюдения.
Path relativize(Path other)
Строит относительный путь между этим путём и заданным путём.
default Path resolve(String other)
Преобразует заданную строку пути в Path и разрешает её относительно этого Path точно так же, как определено в методе resolve.
Path resolve(Path other)
Разрешает заданный путь относительно этого пути.
default Path resolveSibling(String other)
Преобразует заданную строку пути в Path и разрешает её относительно родительского пути этого пути в точности так, как определено в методе resolveSibling.
default Path resolveSibling(Path other)
Разрешает заданный путь относительно родительского пути этого пути.
default boolean startsWith(String other)
Проверяет, начинается ли этот путь с Path, построенным путём преобразования указанной строки пути, точно так же, как определено в методе startsWith(Path).
boolean startsWith(Path other)
Проверяет, начинается ли этот путь с заданным путём.
Path subpath(int beginIndex, int endIndex)
Возвращает относительный Path , который является подпоследовательностью элементов имени этого пути.
Path toAbsolutePath()
Возвращает объект Path , представляющий абсолютный путь этого пути.
default File toFile()
Возвращает объект File, представляющий этот путь.
Path toRealPath(LinkOption... options)
Возвращает реальный путь существующего файла.
String toString()
Возвращает строковое представление этого пути.
URI toUri()
Возвращает URI для представления этого пути.

Методы, объявленные в интерфейсе java.lang.Iterable

forEach, spliterator

Подробное описание методов

of

static Path of(String first, String... more)
Возвращает Path, преобразуя строку пути или последовательность строк, которые при объединении образуют строку пути. Если more не указывает никаких элементов, то значение параметра first является строкой пути для преобразования. Если more указывает один или несколько элементов, то каждая непустая строка, включая first, рассматривается как последовательность элементов имени и объединяется для формирования строки пути. Подробности о том, как объединяются строки, зависят от конкретной реализации, но обычно они объединяются с использованием name-separator в качестве разделителя. Например, если разделитель имён – это "/", и вызывается getPath("/foo","bar","gus"), то строка пути "/foo/bar/gus" преобразуется в Path. Если first является пустой строкой, а more не содержит непустых строк, возвращается Path , представляющая пустой путь.

Path получается путем вызова метода getPath default FileSystem.

Обратите внимание, что, хотя этот метод очень удобен, его использование подразумевает предполагаемую ссылку на стандартную FileSystem и ограничивает полезность вызывающего кода. Поэтому его не следует использовать в библиотечном коде, предназначенном для гибкого повторного использования. Более гибкая альтернатива – использование существующего экземпляра Path в качестве якоря, например:

    Path dir = ...
    Path path = dir.resolve("file");
Параметры:
first - строка пути или начальная часть строки пути
more - дополнительные строки, которые будут объединены для формирования строки пути
Возвращает:
результирующий Path
Исключения:
InvalidPathException - если строка пути не может быть преобразована в Path
С:
11
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

of

static Path of(URI uri)
Возвращает Path, преобразуя URI.

Этот метод итерирует по поставщикам installed , чтобы найти поставщика, который идентифицируется схемой URI scheme данного URI. Схемы URI сравниваются без учета регистра. Если поставщик найден, вызывается его метод getPath для преобразования URI.

В случае стандартного поставщика, идентифицированного схемой URI "file", у данного URI есть компонент пути, а компоненты запроса и фрагмента не определены. Наличие компонента власти зависит от платформы. Возвращаемый Path ассоциирован с файловой системой default.

Стандартный поставщик обеспечивает гарантию обратного преобразования, аналогичную классу File. Для данного Path p гарантируется, что

Path.of(p.toUri()).equals( p.toAbsolutePath())
до тех пор, пока исходный Path, URI, и новый Path созданы в (возможно, разных вызовах) одной виртуальной машине Java. Гарантии других поставщиков зависят от конкретной реализации и, следовательно, не определены.
Параметры:
uri - преобразуемый URI
Возвращает:
результирующий Path
Исключения:
IllegalArgumentException - если условия предопределения для параметра uri не соблюдаются. Формат URI зависит от поставщика.
FileSystemNotFoundException - файловая система, определённая URI, не существует и не может быть автоматически создана, или поставщик, определённый схемой URI, не установлен
SecurityException - если установлен менеджер безопасности и он отказывается предоставить неопределённое разрешение на доступ к файловой системе
С:
11

getFileSystem

FileSystem getFileSystem()
Возвращает файловую систему, которая создала этот объект.
Возвращает:
файловую систему, которая создала этот объект

isAbsolute

boolean isAbsolute()
Определяет, является ли этот путь абсолютным.

Абсолютный путь является полным, поскольку для его определения не требуется объединение с другой информацией о пути.

Возвращает:
true если и только если этот путь является абсолютным

getRoot

Path getRoot()
Возвращает корневую часть этого пути в виде объекта Path, или null, если у этого пути нет корневой части.
Возвращает:
путь, представляющий корневую часть этого пути, или null

getFileName

Path getFileName()
Возвращает имя файла или каталога, обозначаемого этим путем, как объект Path. Имя файла – это последний элемент из корня в иерархии каталогов.
Возвращает:
путь, представляющий имя файла или каталога, или null , если у этого пути нет элементов

getParent

Path getParent()
Возвращает родительский путь, или null , если у этого пути нет родительского.

Родитель этого пути состоит из корневой части этого пути, если она есть, и каждого элемента в пути, кроме последнего от корня в иерархии каталогов. Этот метод не обращается к файловой системе; путь или его родитель могут отсутствовать. Кроме того, этот метод не устраняет специальные имена, такие как "." и "..", которые могут использоваться в некоторых реализациях. Например, в UNIX родитель "/a/b/c" – это "/a/b", а родитель "x/y/. – это "x/y". Этот метод может использоваться с методом normalize для устранения дублирующихся имён в тех случаях, когда требуется подобный оболочке способ навигации.

Если у этого пути более одного элемента и нет корневой части, то этот метод эквивалентен вычислению выражения:

    subpath(0, getNameCount()-1);
Возвращает:
путь, представляющий родительский путь

getNameCount

int getNameCount()
Возвращает количество элементов имени в пути.
Возвращает:
количество элементов в пути, или 0 , если этот путь представляет только корневую часть

getName

Path getName(int index)
Возвращает элемент имени этого пути как объект Path.

Параметр index – это индекс элемента имени для возврата. Элемент, наиболее близкий к корню в иерархии каталогов, имеет индекс 0. Элемент, наиболее удаленный от корня, имеет индекс count-1.

Параметры:
index - индекс элемента
Возвращает:
элемент имени
Исключения:
IllegalArgumentException - если index отрицательный, index больше или равен количеству элементов, или у этого пути нет элементов имени

subpath

Path subpath(int beginIndex, int endIndex)
Возвращает относительный Path , который является подпоследовательностью элементов имени этого пути.

Параметры beginIndex и endIndex определяют подпоследовательность элементов имени. Элемент, наиболее близкий к корню в иерархии каталогов, имеет индекс 0. Элемент, наиболее удаленный от корня, имеет индекс count-1. Возвращаемый объект Path содержит элементы имени, начинающиеся с beginIndex и заканчивающиеся элементом с индексом endIndex-1.

Параметры:
beginIndex - индекс первого элемента, включительно
endIndex - индекс последнего элемента, исключая его
Возвращает:
новый объект Path , который является подпоследовательностью элементов имени в этом Path
Исключения:
IllegalArgumentException - если beginIndex отрицательный, или больше или равен количеству элементов. Если endIndex меньше или равен beginIndex, или больше количества элементов.

startsWith

boolean startsWith(Path other)
Проверяет, начинается ли этот путь с заданного пути.

Этот путь начинается с заданного пути, если корневая компонента этого пути начинается с корневой компоненты заданного пути, и этот путь начинается с тех же элементов имени, что и заданный путь. Если заданный путь имеет больше элементов имени, чем этот путь, то false возвращается.

Влияет ли корневая компонента этого пути на корневую компоненту заданного пути, зависит от файловой системы. Если у этого пути нет корневой компоненты, а у заданного пути есть корневая компонента, то этот путь не начинается с заданного пути.

Если заданный путь связан с другой FileSystem этим путём, то false возвращается.

Параметры:
other - заданный путь
Возвращает:
true если этот путь начинается с заданного пути; в противном случае false

startsWith

default boolean startsWith(String other)
Проверяет, начинается ли этот путь с Path, построенного путём преобразования заданной строки пути, точно так же, как указано в методе startsWith(Path). Например, на UNIX-системах путь "foo/bar" начинается с "foo" и "foo/bar". Он не начинается с "f" или "fo".
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    startsWith(getFileSystem().getPath(other));
Параметры:
other - заданная строка пути
Возвращает:
true если этот путь начинается с заданного пути; в противном случае false
Выбрасывает:
InvalidPathException - Если строка пути не может быть преобразована в Path.

endsWith

boolean endsWith(Path other)
Проверяет, заканчивается ли этот путь заданным путём.

Если заданный путь имеет N элементов и не имеет корневой компоненты, а этот путь имеет N или более элементов, то этот путь заканчивается заданным путём, если последние N элементов каждого пути, начиная с элемента, наиболее удалённого от корня, равны.

Если заданный путь имеет корневую компоненту, то этот путь заканчивается заданным путём, если корневая компонента этого пути заканчивается корневой компонентой заданного пути, и соответствующие элементы обоих путей равны. Влияет ли корневая компонента этого пути на корневую компоненту заданного пути, зависит от файловой системы. Если у этого пути нет корневой компоненты, а у заданного пути есть корневая компонента, то этот путь не заканчивается заданным путём.

Если заданный путь связан с другой FileSystem этим путём, то false возвращается.

Параметры:
other - заданный путь
Возвращает:
true если этот путь заканчивается заданным путём; в противном случае false

endsWith

default boolean endsWith(String other)
Проверяет, заканчивается ли этот путь Path, построенного путём преобразования заданной строки пути, точно так же, как указано в методе endsWith(Path). Например, на UNIX-системах путь "foo/bar" заканчивается на "foo/bar" и "bar". Он не заканчивается на "r" или "/bar". Обратите внимание, что заключительные разделители не учитываются, и поэтому вызов этого метода для Path "foo/bar" со String "bar/" возвращает true.
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    endsWith(getFileSystem().getPath(other));
Параметры:
other - заданная строка пути
Возвращает:
true если этот путь заканчивается заданным путём; в противном случае false
Выбрасывает:
InvalidPathException - Если строка пути не может быть преобразована в Path.

normalize

Path normalize()
Возвращает путь, в котором удалены избыточные элементы имени.

Точное определение этого метода зависит от реализации, но в общем случае он выводится из этого пути, пути, не содержащего избыточных элементов имени. Во многих файловых системах "." и ".." — это специальные имена, используемые для обозначения текущей и родительской директорий. В таких файловых системах все вхождения "." считаются избыточными. Если ".." предшествует имя, отличное от "..", то оба имени считаются избыточными (процесс идентификации таких имён повторяется до тех пор, пока он больше не применим).

Этот метод не обращается к файловой системе; путь может не указывать на существующий файл. Удаление ".." и предшествующего имени из пути может привести к тому, что путь будет указывать на другой файл, чем исходный путь. Это может произойти, когда предшествующее имя — символическая ссылка.

Возвращает:
результирующий путь или этот путь, если он не содержит избыточных элементов имени; пустой путь возвращается, если у этого пути нет корневой компоненты и все элементы имени являются избыточными
См. также:
  • getParent()
  • toRealPath(java.nio.file.LinkOption...)

resolve

Path resolve(Path other)
Разрешение заданного пути относительно этого пути.

Если параметр other является absolute путём, то этот метод тривиально возвращает other. Если other является пустым путём, то этот метод тривиально возвращает этот путь. В противном случае этот метод рассматривает этот путь как директорию и разрешает заданный путь относительно этого пути. В самом простом случае заданный путь не имеет компоненты root, в этом случае этот метод соединяет заданный путь с этим путём и возвращает результирующий путь, который ends заданным путём. В случае, если заданный путь имеет корневую компоненту, разрешение сильно зависит от реализации и поэтому не определено.

Параметры:
other - путь для разрешения относительно этого пути
Возвращает:
результирующий путь
См. также:
  • relativize(java.nio.file.Path)

resolve

default Path resolve(String other)
Преобразует заданную строку пути в Path и разрешает её относительно этого Path точно так же, как указано в методе resolve. Например, предположим, что разделитель имени — "/", и путь представляет "foo/bar", тогда вызов этого метода со строкой пути "gus" приведёт к Path "foo/bar/gus".
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    resolve(getFileSystem().getPath(other));
Параметры:
other - строка пути для разрешения относительно этого пути
Возвращает:
результирующий путь
Выбрасывает:
InvalidPathException - если строка пути не может быть преобразована в Path.
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

resolveSibling

default Path resolveSibling(Path other)
Разрешает заданный путь относительно пути родительского каталога этого пути. Это полезно в тех случаях, когда имя файла нужно заменить другим именем файла. Например, предположим, что разделитель имени — "/", и путь представляет "dir1/dir2/foo", тогда вызов этого метода с Path "bar" приведёт к Path "dir1/dir2/bar". Если у этого пути нет родительского пути, или other является absolute, то этот метод возвращает other. Если other является пустым путём, то этот метод возвращает родительский каталог этого пути, или, если у этого пути нет родительского каталога, пустой путь.
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    (getParent() == null) ? other : getParent().resolve(other);
если other == null, в этом случае выбрасывается NullPointerException.
Параметры:
other - путь для разрешения относительно родительского каталога этого пути
Возвращает:
результирующий путь
См. также:
  • resolve(Path)

resolveSibling

default Path resolveSibling(String other)
Преобразует заданную строку пути в Path и разрешает её относительно родительского каталога этого пути точно так же, как указано в методе resolveSibling.
Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    resolveSibling(getFileSystem().getPath(other));
Параметры:
other - строка пути для разрешения относительно родительского каталога этого пути
Возвращает:
результирующий путь
Выбрасывает:
InvalidPathException - если строка пути не может быть преобразована в Path.
См. также:
  • FileSystem.getPath(java.lang.String, java.lang.String...)

relativize

Path relativize(Path other)
Создаёт относительный путь между этим путём и заданным путём.

Относительный путь является обратным resolution. Этот метод пытается построить relative путь, который при resolved относительно этого пути, даёт путь, указывающий на тот же файл, что и заданный путь. Например, в UNIX, если этот путь "/a/b" , а заданный путь "/a/b/c/d" , то результирующий относительный путь будет "c/d". Когда этот путь и заданный путь не имеют компонента root, тогда можно построить относительный путь. Относительный путь нельзя построить, если у одного из путей есть компонент корня. Когда у обоих путей есть компонент корня, то построение относительного пути зависит от реализации. Если этот путь и заданный путь equal, то возвращается пустой путь.

Для любых двух normalized путей p и q, где q не имеет компонента корня,

p.relativize(p .resolve(q)).equals(q)

При поддержке символических ссылок, то независимо от реализации, результирующий путь, при разрешении относительно этого пути, даёт путь, который можно использовать для поиска same файла, как other . Например, если этот путь "/a/b" , а заданный путь "/a/x" , то результирующий относительный путь может быть "../x". Если "b" является символической ссылкой, тогда зависит от реализации, будет ли "a/b/../x" указывать на тот же файл, что и "/a/x".

Параметры:
other - путь для построения относительного пути относительно этого пути
Возвращает:
результирующий относительный путь, или пустой путь, если оба пути равны
Исключения:
IllegalArgumentException - если other не является Path , который может быть построен относительно этого пути

toUri

URI toUri()
Возвращает URI, представляющий этот путь.

Этот метод строит абсолютный URI с scheme, равным схеме URI, которая идентифицирует поставщик. Точная форма схемы зависита от поставщика.

В случае с типом по умолчанию, URI иерархический с path компонентом, который абсолютен. Компоненты запроса и фрагмента не определены. Определённость компонента авторитета зависит от реализации. Нет гарантии, что URI может быть использован для построения java.io.File. В частности, если этот путь представляет собой UNC-путь, то имя UNC-сервера может быть закодировано в компоненте авторитета результирующего URI. В случае по умолчанию, и файл существует, и можно определить, что файл является каталогом, то результирующий URI заканчивается косой чертой.

Поставщик по умолчанию предоставляет аналогичную гарантию «обратного хода» классу File. Для данного Path p гарантируется, что

Path.of(p.toUri()).equals(p .toAbsolutePath())
до тех пор, пока исходный Path, URI, и новый Path созданы в (возможно, разных вызовах) той же виртуальной машине Java. Гарантии других поставщиков зависят от поставщика и поэтому не определены.

Когда файловая система создаётся для доступа к содержимому файла как к файловой системе, то высоко зависит от реализации, представляет ли возвращённый URI заданный путь в файловой системе, или он представляет собой составной URI, который кодирует URI содержащей файловой системы. Формат составных URI не определён в этом выпуске; такая схема может быть добавлена в будущих выпусках.

Возвращает:
URI, представляющий этот путь
Исключения:
IOError - если происходит ошибка ввода-вывода при получении абсолютного пути, или когда файловая система создаётся для доступа к содержимому файла как файловая система, и URI содержащей файловой системы получить не удаётся
SecurityException - В случае поставщика по умолчанию, и если установлен менеджер безопасности, метод toAbsolutePath выбрасывает исключение безопасности.

toAbsolutePath

Path toAbsolutePath()
Возвращает объект Path , представляющий абсолютный путь этого пути.

Если этот путь уже absolute, то этот метод просто возвращает этот путь. В противном случае этот метод разрешает путь по реализации зависящим от реализации способом, обычно разрешая путь относительно каталога по умолчанию файловой системы. В зависимости от реализации, этот метод может выбросить ошибку ввода-вывода, если файловая система недоступна.

Возвращает:
объект Path , представляющий абсолютный путь
Исключения:
IOError - если происходит ошибка ввода-вывода
SecurityException - В случае поставщика по умолчанию, установлен менеджер безопасности и этот путь не абсолютный, то метод менеджера безопасности checkPropertyAccess вызывается для проверки доступа к системной переменной user.dir

toRealPath

Path toRealPath(LinkOption... options) throws IOException
Возвращает действительный путь существующего файла.

Точное определение этого метода зависит от реализации, но в общем случае он выводится из этого пути, absolute путь, который указывает на same файл, как этот путь, но с именами элементов, которые представляют фактические имена каталогов и файла. Например, где сравнение имён файлов в файловой системе не учитывает регистр, то элементы имени представляют имена в их фактическом регистре. Кроме того, результирующий путь удаляет избыточные элементы имени.

Если этот путь относительный, то его абсолютный путь сначала получается, как если бы был вызван метод toAbsolutePath.

Массив options может быть использован для указания того, как обрабатываются символические ссылки. По умолчанию символические ссылки разрешаются до их конечной цели. Если опция NOFOLLOW_LINKS присутствует, то этот метод не разрешает символические ссылки. Некоторые реализации позволяют специальные имена, такие как "..", для ссылки на родительский каталог. При выводе действительного пути и «..» (или эквивалент) предшествует имени, которое не является «..», то реализация обычно заставит удалить оба имени. Когда не разрешаются символические ссылки, а предшествующее имя является символической ссылкой, то имена удаляются только в том случае, если гарантируется, что результирующий путь будет указывать на тот же файл, что и этот путь.

Параметры:
options - опции, указывающие, как обрабатываются символические ссылки
Возвращает:
абсолютный путь, представляющий действительный путь файла, расположенного этим объектом
Исключения:
IOException - если файл не существует или произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию и установленным менеджером безопасности, его метод checkRead вызывается для проверки доступа на чтение к файлу, и если этот путь не абсолютный, то его метод checkPropertyAccess вызывается для проверки доступа к системной переменной user.dir

toFile

default File toFile()
Возвращает объект File, представляющий этот путь. Если этот Path связан с поставщиком по умолчанию, то этот метод эквивалентен возвращению объекта File , созданного с представлением String этого пути.

Если этот путь был создан вызовом метода File toPath, то нет гарантии, что объект File , возвращённый этим методом, equal исходному объекту File.

Требования к реализации:
Реализация по умолчанию эквивалентна для этого пути:
    new File(toString());
если FileSystem , который создал этот Path , является стандартной файловой системой; в противном случае вызывается UnsupportedOperationException.
Возвращает:
объект File , представляющий этот путь
Исключения:
UnsupportedOperationException - если этот Path не связан с поставщиком по умолчанию

register

WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers) throws IOException
Регистрирует файл, расположенный по этому пути, в службе наблюдения.

В этом выпуске этот путь указывает на существующий каталог. Каталог регистрируется в службе наблюдения, чтобы можно было наблюдать за элементами в каталоге. Параметр events определяет события для регистрации и может содержать следующие события:

  • ENTRY_CREATE - элемент создан или перемещен в каталог
  • ENTRY_DELETE - элемент удален или перемещен из каталога
  • ENTRY_MODIFY - элемент в каталоге был изменен

context для этих событий — это относительный путь между каталогом, указанным этим путем, и путем, указывающим на элемент каталога, который был создан, удален или изменен.

Набор событий может включать дополнительные события, специфичные для реализации, которые не определены перечислением StandardWatchEventKinds

Параметр modifiers определяет модификаторы, которые уточняют, как регистрируется каталог. В этом выпуске не определены никакие стандартные модификаторы. Он может содержать модификаторы, специфичные для реализации.

Если файл регистрируется в службе наблюдения с помощью символической ссылки, то поведение после регистрации зависит от реализации — может ли служба наблюдения продолжать зависеть от существования символической ссылки.

Specified by:
register в интерфейсе Watchable
Parameters:
watcher - служба наблюдения, в которой должен быть зарегистрирован этот объект
events - события, для которых должен быть зарегистрирован этот объект
modifiers - модификаторы, если таковые имеются, которые изменяют способ регистрации объекта
Returns:
ключ, представляющий регистрацию этого объекта в данной службе наблюдения
Throws:
UnsupportedOperationException - если указаны неподдерживаемые события или модификаторы
IllegalArgumentException - если указана некорректная комбинация событий или модификаторов
ClosedWatchServiceException - если служба наблюдения закрыта
NotDirectoryException - если файл зарегистрирован для наблюдения за элементами в каталоге, и файл не является каталогом (опциональное специфичное исключение)
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.

register

default WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events) throws IOException
Регистрирует файл, расположенный по этому пути, в службе наблюдения.

Вызов этого метода ведет себя точно так же, как вызов

    register(watcher, events, new WatchEvent.Modifier[0]);

Пример использования: Предположим, что мы хотим зарегистрировать каталог для событий создания, удаления и изменения элементов:

    Path dir = ...
    WatchService watcher = ...

    WatchKey key = dir.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
Specified by:
register в интерфейсе Watchable
Implementation Requirements:
Реализация по умолчанию эквивалентна для этого пути:
    register(watcher, events, new WatchEvent.Modifier[0]);
Parameters:
watcher - Служба наблюдения, в которой должен быть зарегистрирован этот объект
events - События, для которых должен быть зарегистрирован этот объект
Returns:
Ключ, представляющий регистрацию этого объекта в данной службе наблюдения
Throws:
UnsupportedOperationException - Если указаны неподдерживаемые события
IllegalArgumentException - Если указана некорректная комбинация событий
ClosedWatchServiceException - Если служба наблюдения закрыта
NotDirectoryException - Если файл зарегистрирован для наблюдения за элементами в каталоге, и файл не является каталогом (опциональное специфичное исключение)
IOException - Если произошла ошибка ввода-вывода
SecurityException - В случае использования поставщика по умолчанию и установленного менеджера безопасности, вызывается метод checkRead для проверки доступа для чтения к файлу.

iterator

default Iterator<Path> iterator()
Возвращает итератор по элементам имени этого пути.

Первый элемент, возвращаемый итератором, представляет элемент имени, ближайший к корню в иерархии каталогов, второй элемент — следующий ближайший и так далее. Последний возвращаемый элемент — имя файла или каталога, обозначаемого этим путем. Компонент root, если он есть, не возвращается итератором.

Specified by:
iterator в интерфейсе Iterable<Path>
Implementation Requirements:
Реализация по умолчанию возвращает Iterator<Path>, которая для этого пути проходит по Path возвращаемым getName(index), где index изменяется от нуля до getNameCount() - 1, включительно.
Returns:
итератор по элементам имени этого пути

compareTo

int compareTo(Path other)
Сравнивает два абстрактных пути лексикографически. Порядок, определяемый этим методом, зависит от поставщика, а в случае поставщика по умолчанию — от платформы. Этот метод не обращается к файловой системе, и ни один файл не должен существовать.

Этот метод нельзя использовать для сравнения путей, связанных с разными поставщиками файловых систем.

Specified by:
compareTo в интерфейсе Comparable<Path>
Parameters:
other - путь, сравниваемый с этим путем.
Returns:
ноль, если аргумент equal этому пути, значение меньше нуля, если этот путь лексикографически меньше аргумента, или значение больше нуля, если этот путь лексикографически больше аргумента
Throws:
UnsupportedOperationException - если пути связаны с разными поставщиками

equals

boolean equals(Object other)
Проверяет этот путь на равенство с данным объектом.

Если данный объект не является Path или является Path, связанным с другим поставщиком FileSystem, тогда этот метод возвращает false.

Равенство двух путей зависит от реализации файловой системы. В некоторых случаях пути сравниваются без учета регистра, в других — регистрозависимо. Этот метод не обращается к файловой системе, и файл не должен существовать. Если требуется, метод isSameFile может использоваться для проверки, указывают ли два пути на один и тот же файл.

Этот метод удовлетворяет общему контракту метода Object.equals.

Overrides:
equals в классе Object
Parameters:
other - объект, с которым должен быть сравнен этот объект
Returns:
true если, и только если, данный объект является Path, идентичным этому Path
See Also:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Вычисляет хэш-код для этого пути.

Хэш-код основан на компонентах пути и удовлетворяет общему контракту метода Object.hashCode.

Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого пути
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

String toString()
Возвращает строковое представление этого пути.

Если этот путь был создан путем преобразования строки пути с помощью метода getPath, то строка пути, возвращаемая этим методом, может отличаться от исходной строки, используемой для создания пути.

Возвращаемая строка пути использует разделитель имен по умолчанию separator для разделения имен в пути.

Overrides:
toString в классе Object
Returns:
строковое представление этого пути

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/file/Path.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API