Програма 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 файл
  • Java URI клас

Пример 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 Paths
  • Интерфейс за път на Java

Интересни статии...