Интерфейс Path
- Все суперинтерфейсы:
-
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) | Проверяет, заканчивается ли этот путь |
boolean | endsWith(Path other) | Проверяет, заканчивается ли этот путь заданным путём. |
boolean | equals(Object other) | Проверяет этот путь на равенство с заданным объектом. |
Path | getFileName() | Возвращает имя файла или каталога, обозначаемого этим путём, как объект |
FileSystem | getFileSystem() | Возвращает файловую систему, которая создала этот объект. |
Path | getName(int index) | Возвращает элемент имени этого пути как объект |
int | getNameCount() | Возвращает количество элементов имени в пути. |
Path | getParent() | Возвращает родительский путь или |
Path | getRoot() | Возвращает корневой компонент этого пути как объект |
int | hashCode() | Вычисляет хэш-код для этого пути. |
boolean | isAbsolute() | Указывает, является ли этот путь абсолютным. |
default Iterator<Path> | iterator() | Возвращает итератор по элементам имени этого пути. |
Path | normalize() | Возвращает путь, который является этим путём с удалёнными избыточными элементами имени. |
static Path | of(String first,
String... more) | Возвращает |
static Path | of(URI 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 | resolve(Path other) | Разрешает заданный путь относительно этого пути. |
default Path | resolveSibling(String other) | Преобразует заданную строку пути в |
default Path | resolveSibling(Path other) | Разрешает заданный путь относительно родительского пути этого пути |
default boolean | startsWith(String other) | Проверяет, начинается ли этот путь с |
boolean | startsWith(Path other) | Проверяет, начинается ли этот путь с заданного пути. |
Path | subpath(int beginIndex,
int endIndex) | Возвращает относительный |
Path | toAbsolutePath() | Возвращает объект |
default File | toFile() | Возвращает объект |
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");
- Параметры:
-
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 имеет ненулевой компонент пути и неопределённые компоненты запроса и фрагмента. Наличие компонента "authority" зависит от платформы. Возвращаемый 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)
Проверяет, начинается ли этот путь со строкой пути, полученной путём преобразования заданной строки пути, точно так же, как указано в методе startsWith(Path). Например, на UNIX пути "foo/bar" начинаются с "foo" и "foo/bar". Они не начинаются с "f" или "fo".
- Требования к реализации:
- Стандартная реализация эквивалентна следующему для этого пути:
startsWith(getFileSystem().getPath(other));
- Параметры:
-
other- заданная строка пути - Возвращает:
-
trueесли этот путь начинается с заданного пути; в противном случаеfalse - Исключения:
-
InvalidPathException- Если строка пути не может быть преобразована в путь.
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- Если строка пути не может быть преобразована в путь.
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- если строка пути не может быть преобразована в путь. - См. также:
FileSystem.getPath(java.lang.String, java.lang.String...)
resolveSibling
default Path resolveSibling(Path other)
Разрешает заданный путь относительно пути parent этого пути. Это полезно, когда имя файла нужно заменить другим именем файла. Например, предположим, что разделитель имён — «/», а путь представляет «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 и разрешает её относительно родительского пути этого пути parent точно так же, как указано в методе resolveSibling.
- Требования к реализации:
- Стандартная реализация эквивалентна для этого пути:
resolveSibling(getFileSystem().getPath(other));
- Параметры:
-
other- строка пути для разрешения относительно родительского пути этого пути - Возвращает:
- результирующий путь
- Исключения:
-
InvalidPathException- если строка пути не может быть преобразована в путь. - См. также:
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 Возвращает фактический путь существующего файла.
Точное определение этого метода зависит от реализации, но в общем случае он выводится из этого пути, абсолютный путь, который определяет 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 указывает модификаторы, которые квалифицируют, как регистрируется каталог. В этом релизе не определено никаких стандартных модификаторов. Он может содержать специфичные для реализации модификаторы.
Если файл регистрируется в службе наблюдения с помощью символической ссылки, то специфично для реализации, если наблюдение продолжает зависеть от существования символической ссылки после её регистрации.
- Определено в:
-
registerв интерфейсеWatchable - Параметры:
-
watcher- служба наблюдения, в которую должен быть зарегистрирован этот объект -
events- события, для которых этот объект должен быть зарегистрирован -
modifiers- модификаторы, если таковые имеются, которые изменяют способ регистрации объекта - Возвращает:
- ключ, представляющий регистрацию этого объекта в данной службе наблюдения
- Исключение:
-
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);
- Указано в:
-
registerв интерфейсеWatchable - Требования к реализации:
- По умолчанию реализация эквивалентна для этого пути:
register(watcher, events, new WatchEvent.Modifier[0]);
- Параметры:
-
watcher- Сервис мониторинга, в котором должен быть зарегистрирован этот объект -
events- События, для которых этот объект должен быть зарегистрирован - Возвращает:
- Ключ, представляющий регистрацию этого объекта в заданном сервис мониторинга
- Исключения:
-
UnsupportedOperationException- Если указаны неподдерживаемые события -
IllegalArgumentException- Если указана недопустимая комбинация событий -
ClosedWatchServiceException- Если сервис мониторинга закрыт -
NotDirectoryException- Если файл зарегистрирован для отслеживания записей в каталоге, и файл не является каталогом (дополнительное специфическое исключение) -
IOException- Если произошла ошибка ввода-вывода -
SecurityException- В случае с поставщиком по умолчанию, и если установлен менеджер безопасности, вызывается методcheckReadдля проверки доступа для чтения к файлу.
iterator
default Iterator<Path> iterator()
Возвращает итератор по элементам имени этого пути.
Первый элемент, возвращаемый итератором, представляет собой элемент имени, наиболее близкий к корню в иерархии каталогов, второй элемент — следующий наиболее близкий и так далее. Последний возвращаемый элемент — имя файла или каталога, обозначаемое этим путем. Компонент root, если он присутствует, не возвращается итератором.
- Указано в:
-
iteratorв интерфейсеIterable<Path> - Требования к реализации:
- Реализация по умолчанию возвращает
Iterator<Path>, который для этого пути перебираетPathвозвращаемыеgetName(index), гдеindexизменяется от нуля доgetNameCount() - 1, включительно. - Возвращает:
- итератор по элементам имени этого пути.
compareTo
int compareTo(Path other)
Сравнивает два абстрактных пути лексикографически. Порядок, определяемый этим методом, зависит от поставщика, а в случае поставщика по умолчанию — от платформы. Этот метод не обращается к файловой системе, и ни один файл не должен существовать.
Этот метод не может использоваться для сравнения путей, связанных с различными поставщиками файловой системы.
- Указано в:
-
compareToв интерфейсеComparable<Path> - Параметры:
-
other- путь, сравниваемый с этим путем. - Возвращает:
- ноль, если аргумент
equalэтому пути, значение меньше нуля, если этот путь лексикографически меньше аргумента, или значение больше нуля, если этот путь лексикографически больше аргумента - Исключения:
-
ClassCastException- если пути связаны с разными поставщиками
equals
boolean equals(Object other)
Проверяет этот путь на равенство заданному объекту.
Если заданный объект не является Path или является Path, связанным с другим FileSystem, то этот метод возвращает false.
Равенство двух путей зависит от реализации файловой системы. В некоторых случаях пути сравниваются без учета регистра, а в других — с учетом регистра. Этот метод не обращается к файловой системе, и файл не требуется для существования. При необходимости метод isSameFile может использоваться для проверки, указывают ли два пути на один и тот же файл.
Этот метод удовлетворяет общему соглашению метода Object.equals.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
other- объект, с которым сравнивается этот объект - Возвращает:
-
trueесли и только если заданный объект являетсяPath, идентичным этомуPath - См. также:
-
Object.hashCode(),HashMap
hashCode
int hashCode()
Вычисляет код хэша для этого пути.
Код хэша основан на компонентах пути и удовлетворяет общему соглашению метода Object.hashCode.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение кода хэша для этого пути
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
String toString()
Возвращает строковое представление этого пути.
Если этот путь был создан путем преобразования строки пути с помощью метода getPath, то строка пути, возвращаемая этим методом, может отличаться от исходной строки, используемой для создания пути.
Возвращаемая строка пути использует стандартный разделитель имен в пути separator.
© 1993, 2020, 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/11/docs/api/java.base/java/nio/file/Path.html