Java-ohjelma suhteellisen polun saamiseksi kahdelta absoluuttiselta polulta

Tässä esimerkissä opitaan saamaan suhteellinen polku Java: n kahdesta absoluuttisesta polusta käyttämällä String-menetelmiä, URI-luokkaa ja java.nio.file-pakettia.

Esimerkki 1: Hanki suhteellinen polku kahdesta absoluuttisesta polusta käyttämällä URI-luokkaa

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

Tuotos

 Absoluuttinen polku1: C: Käyttäjät Työpöytä Programiz Java Time.java Absoluuttinen polku2: C: Käyttäjät Työpöydän suhteellinen polku: Programiz / Java / Time.java

Yllä olevassa esimerkissä meillä on kaksi absoluuttista polkua nimeltä AbsolutePath1 ja AbsoluuttinenPath2. Olemme käyttäneet URI-luokkaa absoluuttisten polkujen muuntamiseksi suhteelliseksi poluksi.

  • touri () - muuntaa Fileobjektin Uri
  • relativize () - poimii suhteellisen polun vertaamalla kahta absoluuttista polkua toisiinsa
  • getPath () - muuntaa Uri-merkkijonoksi

Suositeltava lukeminen :

  • Java-tiedosto
  • Java URI -luokka

Esimerkki 2: Hanki suhteellinen polku kahdelta absoluuttiselta polulta String-menetelmillä

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

Tuotos

 Absoluuttinen polku1: C: Käyttäjät Desktop Programiz Java Time.java Absoluuttinen polku2: C: Users Työpöydän absoluuttinen polku: Programiz Java Time.java

Yllä olevassa esimerkissä olemme muuntaneet tiedostopolut merkkijonoiksi. Huomaa ilmaisu,

 absolutePath1.substring(absolutePath2.length())

Tällöin substring()menetelmä palauttaa absoluuttisen polun osan indeksistä alkaen absoluuttisen polun 2 pituuden. Eli merkkijono, jota edustaa absoluuttinen polku2, poistetaan absoluuttisesta polusta1.

Lisätietoja alakoodauksen toiminnasta on Java String -alamerkkijonossa ().

Esimerkki 3: Hanki suhteellinen polku kahdelta absoluuttiselta polulta käyttämällä java.nio.file-pakettia

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

Tuotos

 Relative Path: ProgramizJavaTime.java

Yllä olevassa esimerkissä, olemme käyttäneet relativize()menetelmän Pathrajapinnan saada suhteellinen polku kahden ehdoton polkuja.

Suositeltavat lukemat :

  • Java Paths -luokka
  • Java Path Interface

Mielenkiintoisia artikkeleita...