Учебники

Java NIO — путь

Как следует из названия, Path — это конкретное местоположение объекта, такого как файл или каталог в файловой системе, чтобы можно было искать и получать к нему доступ в этом конкретном месте.

С технической точки зрения Java, Path — это интерфейс, который был представлен в файловом пакете Java NIO во время Java версии 7, и представляет собой представление местоположения в конкретной файловой системе. Поскольку интерфейс пути находится в пакете Java NIO, он получает свое квалифицированное имя как java. .nio.file.Path.

В общем случае путь объекта может быть двух типов: один — абсолютный путь, а другой — относительный путь. Поскольку имя обоих путей предполагает, что абсолютный путь — это адрес местоположения от корня до объекта, в котором он находится, а относительный путь — это адрес местоположения. который относится к какому-либо другому пути. В своем определении Path использует разделители как «\» для Windows и «/» для операционных систем Unix.

Чтобы получить экземпляр Path, мы можем использовать статический метод класса java.nio.file.Paths get (). Этот метод преобразует строку пути или последовательность строк, которые при соединении образуют строку пути, в экземпляр Path Этот метод также генерирует InvalidPathException во время выполнения, если переданные аргументы содержат недопустимые символы.

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

пример

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path relative = Paths.get("file2.txt");
      System.out.println("Relative path: " + relative);
      Path absolute = relative.toAbsolutePath();
      System.out.println("Absolute path: " + absolute);
   }
}

Пока мы знаем, что такое интерфейс пути, зачем он нам нужен и как мы можем получить к нему доступ. Теперь мы знаем, какие важные методы нам предоставляет интерфейс пути.

Важные методы Path Interface

  • getFileName () — возвращает файловую систему, которая создала этот объект.

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

  • getNameCount () — возвращает количество элементов имени в пути.

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

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

  • getRoot () — возвращает корневой компонент этого пути в виде объекта Path или значение NULL, если этот путь не имеет корневого компонента.

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

  • toRealPath () — возвращает реальный путь к существующему файлу.

  • toFile () — возвращает объект File, представляющий этот путь.

  • normalize () — Возвращает путь, который является этим путем с исключенными избыточными элементами имени.

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

  • endWith (Path other) — Проверяет, заканчивается ли этот путь заданным путем. Если в указанном пути есть N элементов, и нет корневого компонента, и этот путь имеет N или более элементов, то этот путь заканчивается указанным путем, если последний N элементы каждого пути, начиная с самого дальнего от корня элемента, равны.

  • endWith (String other) — Проверяет, заканчивается ли этот путь путем Path, созданным путем преобразования заданной строки пути, точно так, как указано методом endWith (Path).

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

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

getNameCount () — возвращает количество элементов имени в пути.

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

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

getRoot () — возвращает корневой компонент этого пути в виде объекта Path или значение NULL, если этот путь не имеет корневого компонента.

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

toRealPath () — возвращает реальный путь к существующему файлу.

toFile () — возвращает объект File, представляющий этот путь.

normalize () — Возвращает путь, который является этим путем с исключенными избыточными элементами имени.

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

endWith (Path other) — Проверяет, заканчивается ли этот путь заданным путем. Если в указанном пути есть N элементов, и нет корневого компонента, и этот путь имеет N или более элементов, то этот путь заканчивается указанным путем, если последний N элементы каждого пути, начиная с самого дальнего от корня элемента, равны.

endWith (String other) — Проверяет, заканчивается ли этот путь путем Path, созданным путем преобразования заданной строки пути, точно так, как указано методом endWith (Path).

пример

Следующий пример иллюстрирует различные методы интерфейса Path, которые упомянуты выше —