I dette eksempel lærer vi at få den relative sti fra to absolutte stier i Java ved hjælp af String-metoder, URI-klasse og java.nio.file-pakke.
Eksempel 1: Få en relativ sti fra to absolutte stier ved hjælp af 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(); ) ) )
Produktion
Absolut sti1: C: Brugere Desktop Programiz Java Time.java Absolut sti2: C: Brugere Desktop Relativ sti: Programiz / Java / Time.java
I ovenstående eksempel har vi to absolutte stier med navnet absolutePath1 og absolutePath2. Vi har brugt URI-klassen til at konvertere de absolutte stier til den relative sti.
- toURI () - konverterer
File
objektet til en Uri - relativisere () - udtrækker den relative sti ved at sammenligne to absolutte stier med hinanden
- getPath () - konverterer Uri til en streng
Anbefalet læsning :
- Java-fil
- Java URI-klasse
Eksempel 2: Få en relativ sti fra to absolutte stier ved hjælp af strengmetoder
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); ) )
Produktion
Absolut sti1: C: Brugere Desktop Programiz Java Time.java Absolut sti2: C: Brugere Desktop Absolut sti: Programiz Java Time.java
I ovenstående eksempel har vi konverteret filstierne til strenge. Bemærk udtrykket,
absolutePath1.substring(absolutePath2.length())
Her substring()
returnerer metoden den del af absolutePath1 startende fra indeks svarende til længden af absolutePath2. Det vil sige, at strengen repræsenteret af absolutePath2 fjernes fra absolutePath1.
For at lære mere om, hvordan substring fungerer, skal du besøge Java String substring ().
Eksempel 3: Få en relativ sti fra to absolutte stier ved hjælp af pakken 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); ) )
Produktion
Relative Path: ProgramizJavaTime.java
I ovenstående eksempel har vi brugt relativize()
metoden til Path
grænsefladen til at få en relativ sti fra to absolutte stier.
Anbefalede målinger :
- Java stier klasse
- Java Path Interface