Привіт! Дана стаття містить переклад документації для інтерфейсу Path, який використовується файловому вводі/виводі. Тому знання про даний інтерфейс обов'язкові! Об'єкт даного інтерфейсу можна використати для відображення розміщення об'єкта файлової системи. Зазвичай він відображає системно залежний шлях. Об'єкт Path відображає ієрархічний шлях, який компонований з послідовності імен директорій і файлу, розділеними спеціальним символом. Кореневий елемент (root) також може бути присутнім в даній послідовності, відображаючи тим самим абсолютний шлях у файловій системі. Елемент, який знаходиться дальше по ієрархії від кореневого елементу, являється ім'ям директорії або файлу. Об'єкт інтерфейсу Path може представляти кореневий елемент, кореневий елемент і послідовність імен, і один або декілька елементів імен. Вважається, що Path являється пустим шляхом, якщо він складається тільки з одного іменного елементу, який є порожній. Виконуючи операції над пустим шляхом, еквівалентно виконуванню операції над директорією за умовчанням. Інтерфейс Path визначає методи getFileName, getParent, getRoot і subpath для отримання доступу до компонентів або субпослідовностей його елементів. В добавок до методів доступу до елементів шляху, інтерфейсr Path також визначає методи resolve і resolveSiblings для комбінування шляхів. Метод relativize використовується для конструювання відносного шляху між двома іншими. Також шляхи можуть порівнюватись і тестуватись методами startsWith і endsWith. Реалізації даного інтерфейсу містять незмінні значення і являються бепечними для конкурентного використання декількома потоками.

Методи

int compareTo(Path other)
Лексикографічне порівняння двох шляхів.
boolean endsWith(Path other)
Тестує, чи поточний шлях закінчується переданим.
boolean endsWith(String other)
Тестує, чи поточний шлях закінчується переданим.
boolean equals(Object other)
Тестує поточний об'єкт шляху на рівність з переданим об'єктом.
Path getFileName()
Повертає ім'я файлу або директорії, яке представляє поточний шлях.
FileSystem getFileSystem()
Повертає об'єкт FileSystem, який створив поточний об'єкт.
Path getName(int index)
Повертає ім'я елементу поточного шляху в якості об'єкта Path.
int getNameCount()
Повертає кількість елементів імен в поточному об'єкті.
Path getRoot()
Повертає батьківський об'єкт шляху або null якщо цей шлях не має батьківського елементу.
Path getRoot()
Повертає кореневий компонент цього шляху в якості об'єкта Path або null, якщо цей шлях не має кореневого компоненту.
int hashCode()
Обраховує хеш-код для поточного шляху.
boolean isAbsolute()
Перевіряє чи поточний шлях являється абсолютним.
Iterator<Path> iterator()
Повертає ітератор над елементами поточного шляху.
Path normalize()
Повертає шлях з видаленими надлишковими елементами.
WatchKey register(WatchService watcher, WatchEvent.Kind<?>... events)
Рєструє сервес обробки на певну подію для файлу поточного шляху.
WatchKey register(WatchService watcher, WatchEvent.Kind<?>[] events, WatchEvent.Modifier... modifiers)
Рєструє сервес обробки на певну подію для файлу поточного шляху.
Path relativize(Path other)
Конструює відносний шлях між поточним шляхом і переданим аргументом.
Path resolve(Path other)
Якщо параметр функції являється абсолютним шляхом, метод повертає його. Якщо параметр являється пустим шляхом, метод повертає поточний шлях. В іншому випадку, цей метод вважає, що поточний шлях являється директорією і вирішує параметр відносно даного. У найпростішому випадку, параметр немає кореневого компонента, що викликає поєднання переданого шляху з поточним, і метод повертає шлях, який закінчуєтьчя переданим. Якщо переданий шлях має кореневий компонент, розраховування результуючого шляху залежить від реалізації поточної системи.
Path resolve(String other)
Перетврює переданий рядок в об'єкт інтерфейсу Path, і розраховує шлях як це робить метод resolve (Path other).
Path resolveSibling(Path other)
Розраховує переданий шлях відносно батька поточного шляху. Цей метод корисний коли ім'я файлу потребує заміни на інше ім'я. Наприклад, припустимо, що розділювач імен являється символ "/" і шлях представляє собою структуру "dir1/dir2/foo". В такому разі, виклик даного методу з параметром шляху у вигляді "bar" поверне наступну структуру: "dir1/dir2/bar". Якщо поточний шлях немає батьківського елементу, або параметр являється абсолютним шляхом, тоді метод повертає передний параметр. Якщо параметр являється пустим шляхом, тоді цей метод повертає батьківський шлях поточного об'єкту, або якщо поточний об'єкт немає батьківського елементу, пустий шлях.
Path resolveSibling(String other)
Перетворює переданий рядок в об'єкт шляху і виконує ту ж роботу, що метод resolve (Path other).
boolean startsWith(Path other)
Перевіряє, чи поточний шлях розпочинається з переданого. Вважається, що поточний шлях починається з переданого, якщо кореневий компонент розпочинається з кореневого компоненту переаного шляху і поточний елемент містить з початку тіж елементи що і переданий. Якщо переданий шлях містить більше елементів, ніж поточний шлях, метод повертає false. Кореневі елементи визначаються файловою системою. Якщо поточний шлях немає кореневий компонент, а переданий його містить, вважається що поточний шлях не починається з переданого. Якщо поточний об'єкт шляху асоційований з іншою файловою системою, метод повертає false.
boolean startsWith(String other)
Виконує теж саме що і попередній метод, попередньо перетворивши рядок символів у шлях.
Path subpath(int beginIndex, int endIndex)
Повертає відносний шлях, який містить підмножину елементів поточного. Параметри beginIndex і endIndex вказують проміжок підмножини елементів. Ім'я, яке є найближчим до кореневого елементу у ієрархіє директорій має індекс 0 (нуль). Елемент, який міститься найдалі від кореневого елементу має індекс N-1. Повернений об'єкт містить елементи імен, які починаються за індексом beginIndex і закінчується елементом за індексом endIndex-1.
Path toAbsolutePath()
Повертає об'єкт, який представляє абсолютний шлях поточного.
File toFile()
Повертає об'єкт File, який представляє поточний шлях.
Path toRealPath(LinkOption... options)
Повертає справжній шлях існуючого файлу.
String toString()
Returns the string representation of this path. Повертає рядок символів, які представляють поточний шлях.
URI toUri()
Повертає URI-об'єкт, який представляє поточний шлях.

Приклад

Приклад використання декількох методів класу Path.
import java.nio.file.* /* усе для файлів */ ;
import java.net.URI ; /* об'єкт URI */

class MainClass
{
  public static void main (String[] opts)
  {
    /* змінні, які будуть посилатись 
    ** на об'єкти-шляхи */
    Path path1, path2, path3 ;
    
    /* створюємо два об'єкти */
    path1 = FileSystems.getDefault().getPath("log", "first.log") ;
    path2 = FileSystems.getDefault().getPath("log", "second.txt") ;
    
    /* виводимо на екран результати 
    ** виконання функцій */
    
    System.out.println ("path1: " + path1.toString()) ;
    System.out.println ("path2: " + path2.toString()) ;
    
    path3 = path1.resolve (path2) ;
    
    System.out.println ("resolve path1 і path2: " + path3.toString()) ;
    
    path3 = path1.toAbsolutePath () ;
    
    System.out.println ("path1.toAbsolutePath: " + path3.toString()) ;
    
    URI puri = path1.toUri () ;
    
    System.out.println ("path1.toUri: " + puri.toString()) ;
    
    path3 = path1.normalize () ;
    
    System.out.println ("path1.normilize: " + path3.toString()) ;
    
    System.out.println ("path1.isAbsolute: " + path1.isAbsolute()) ;
    
    System.out.println ("path1.getNameCount: " + path1.getNameCount()) ;
    
    System.out.println ("path1.getFileName: " + path1.getFileName()) ;
  }
}
Після компонування попереднього коду можна отримати наступний резульат (код міститься у файлі "MainClass.java"): java_path_simple_program_output