Програма Java для отримання відносного шляху з двох абсолютних шляхів

У цьому прикладі ми навчимося отримувати відносний шлях із двох абсолютних шляхів у Java за допомогою методів String, класу URI та пакету java.nio.file.

Приклад 1: Отримати відносний шлях із двох абсолютних шляхів за допомогою класу URI

 import java.io.File; import java.net.URI; class Main ( public static void main(String() args) ( try ( // Two absolute paths File absolutePath1 = new File("C:\Users\Desktop\Programiz\Java\Time.java"); System.out.println("Absolute Path1: " + absolutePath1); File absolutePath2 = new File("C:\Users\Desktop"); System.out.println("Absolute Path2: " + absolutePath2); // convert the absolute path to URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); // create a relative path from the two paths URI relativePath = path2.relativize(path1); // convert the URI to string String path = relativePath.getPath(); System.out.println("Relative Path: " + path); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Вихідні дані

 Абсолютний шлях1: C: Users Desktop Programiz Java Time.java Абсолютний шлях2: C: Users Desktop Відносний шлях: Programiz / Java / Time.java

У наведеному вище прикладі ми маємо два абсолютні шляхи з іменами absolutePath1 та absolutePath2. Ми використовували клас URI для перетворення абсолютних шляхів у відносний шлях.

  • toURI () - перетворює Fileоб'єкт на Uri
  • relativize () - витягує відносний шлях шляхом порівняння двох абсолютних шляхів між собою
  • getPath () - перетворює Uri у рядок

Рекомендована література :

  • Файл Java
  • Клас URI Java

Приклад 2: Отримати відносний шлях із двох абсолютних шляхів за допомогою методів String

 import java.io.File; class Main ( public static void main(String() args) ( // Create file objects File file1 = new File("C:\Users\Desktop\Programiz\Java\Time.java"); File file2 = new File("C:\Users\Desktop"); // convert file objects to string String absolutePath1 = file1.toString(); System.out.println("Absolute Path1: " + absolutePath1); String absolutePath2 = file2.toString(); System.out.println("Absolute Path2: " + absolutePath2); // get the relative path String relativePath = absolutePath1.substring(absolutePath2.length()); System.out.println("Absolute Path: " + relativePath); ) )

Вихідні дані

 Абсолютний шлях1: C: Users Desktop Programiz Java Time.java Абсолютний шлях2: C: Users Desktop Абсолютний шлях: Programiz Java Time.java

У наведеному вище прикладі ми перетворили шляхи до файлів у рядки. Зверніть увагу на вираз,

 absolutePath1.substring(absolutePath2.length())

Тут substring()метод повертає частину absolutePath1, починаючи з індексу, рівного довжині absolutePath2. Тобто рядок, представлений absolutePath2, видаляється з absolutePath1.

Щоб дізнатися більше про те, як працює підрядок, відвідайте підрядок Java String ().

Приклад 3: Отримайте відносний шлях із двох абсолютних шляхів за допомогою пакету java.nio.file

 import java.nio.file.Path; import java.nio.file.Paths; class Main ( public static void main(String() args) ( // Create file objects Path absolutePath1 = Paths.get("C:\Users\Desktop\Programiz\Java\Time.java"); Path absolutePath2 = Paths.get("C:\Users\Desktop"); // convert the absolute path to relative path Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Relative Path: " + relativePath); ) )

Вихідні дані

 Relative Path: ProgramizJavaTime.java

У наведеному вище прикладі ми використовували relativize()метод Pathінтерфейсу, щоб отримати відносний шлях із двох абсолютних шляхів.

Рекомендовані читання :

  • Клас шляхів Java
  • Інтерфейс шляху Java

Цікаві статті...