Java-programma om het relatieve pad uit twee absolute paden te halen

In dit voorbeeld zullen we leren om het relatieve pad uit twee absolute paden in Java te halen met behulp van String-methoden, URI-klasse en java.nio.file-pakket.

Voorbeeld 1: haal een relatief pad op van twee absolute paden met behulp van de URI-klasse

 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(); ) ) )

Uitvoer

 Absoluut pad1: C: Users Desktop Programiz Java Time.java Absoluut pad2: C: Users Desktop Relatief pad: Programiz / Java / Time.java

In het bovenstaande voorbeeld hebben we twee absolute paden genaamd absolutePath1 en absolutePath2. We hebben de URI-klasse gebruikt om de absolute paden om te zetten in het relatieve pad.

  • toURI () - converteert het Fileobject naar een Uri
  • relativize () - extraheert het relatieve pad door twee absolute paden met elkaar te vergelijken
  • getPath () - converteert de Uri naar een string

Aanbevolen literatuur :

  • Java-bestand
  • Java URI-klasse

Voorbeeld 2: haal een relatief pad op van twee absolute paden met behulp van String-methoden

 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); ) )

Uitvoer

 Absoluut pad1: C: Users Desktop Programiz Java Time.java Absoluut pad2: C: Users Desktop Absoluut pad: Programiz Java Time.java

In het bovenstaande voorbeeld hebben we de bestandspaden geconverteerd naar strings. Let op de uitdrukking,

 absolutePath1.substring(absolutePath2.length())

Hier substring()retourneert de methode het deel van absolutePath1, beginnend met index, gelijk aan de lengte van absolutePath2. Dat wil zeggen, de tekenreeks die wordt vertegenwoordigd door absolutePath2 wordt verwijderd uit absolutePath1.

Voor meer informatie over hoe substring werkt, ga je naar Java String substring ().

Voorbeeld 3: Haal een relatief pad op van twee absolute paden met het pakket 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); ) )

Uitvoer

 Relative Path: ProgramizJavaTime.java

In het bovenstaande voorbeeld hebben we de relativize()methode van de Pathinterface gebruikt om een ​​relatief pad uit twee absolute paden te krijgen.

Aanbevolen metingen :

  • Java Paths-klasse
  • Java-padinterface

Interessante artikelen...