Spec-Zone.ru › OpenJDK 17

Интерфейс Путь

Все суперинтерфейсы:
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. Path, представляющий пустой путь, возвращается, если first — пустая строка, а more не содержит непустых строк.

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

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


     Path dir = ...
     Path path = dir.resolve("file");
 
Parameters:
first - строка пути или начальная часть строки пути
more - дополнительные строки, которые должны быть объединены в строку пути
Returns:
полученное Path
Throws:
InvalidPathException - если строка пути не может быть преобразована в Path
Since:
11
See Also:
  • 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 есть непустая компонента пути, а компоненты запроса и фрагмента не определены. Наличие компоненты "authority" зависит от платформы. Возвращённое Path связано с файловой системой default.

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

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

getFileSystem

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

isAbsolute

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

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

Returns:
true, если и только если этот путь является абсолютным

getRoot

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

getFileName

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

getParent

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

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

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

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

getNameCount

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

getName

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

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

Parameters:
index - индекс элемента
Returns:
элемент имени
Throws:
IllegalArgumentException - если index отрицательный, index больше или равен количеству элементов, или у этого пути нет элементов

subpath

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

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

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

startsWith

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

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

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

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

Parameters:
other - заданный путь
Returns:
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" приведёт к результирующему пути "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", тогда вызов этого метода со строкой "bar" приведёт к результирующему пути "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
Регистрирует файл, расположенный по этому пути, в службе наблюдения.

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

     watchable.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:
ClassCastException — если пути связаны с разными поставщиками

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, 2021, 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/17/docs/api/java.base/java/nio/file/Path.html

Spec-Zone.ru

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