„Java“ programa, kad gautumėte santykinį kelią iš dviejų absoliučių kelių

Šiame pavyzdyje mes išmokysime gauti santykinį kelią iš dviejų absoliučių „Java“ kelių naudodami „String“ metodus, URI klasę ir paketą java.nio.file.

1 pavyzdys: gaukite santykinį kelią iš dviejų absoliučių kelių naudodami URI klasę

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

Rezultatas

 Absoliutus kelias1: C: Vartotojai Desktop Programiz Java Time.java Absoliutus kelias2: C: Vartotojai Darbalaukio santykinis kelias: Programiz / Java / Time.java

Ankstesniame pavyzdyje mes turime du absoliučius kelius, pavadintus absoliučiu keliu1 ir absoliučiu keliu2. Norėdami konvertuoti absoliučius kelius į santykinį, naudojome URI klasę.

  • Touri () - konvertuoja Fileobjektą į Uriego
  • reliatyvize () - išskiria santykinį kelią lygindamas du absoliučius kelius vienas su kitu
  • getPath () - konvertuoja Uri į eilutę

Rekomenduojamas skaitymas :

  • „Java“ failas
  • „Java“ URI klasė

2 pavyzdys: gaukite santykinį kelią iš dviejų absoliučių kelių naudodami eilutės metodus

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

Rezultatas

 Absoliutus kelias1: C: Vartotojai Desktop Programiz Java Time.java Absoliutus kelias2: C: Users Desktop Absoliutus kelias: Programiz Java Time.java

Ankstesniame pavyzdyje failo kelius pavertėme eilutėmis. Atkreipkite dėmesį į išraišką,

 absolutePath1.substring(absolutePath2.length())

Čia substring()metodas grąžina absoliutaus kelio 1 dalį, pradedant indeksu, lygiu absoliutaus kelio 2 ilgiui. Tai yra, eilutė, kurią vaizduoja absoliutus kelias2, pašalinama iš absoliutaus kelio1.

Norėdami sužinoti daugiau apie tai, kaip veikia substringas, apsilankykite „Java String“ substring ().

3 pavyzdys: gaukite santykinį kelią iš dviejų absoliučių kelių naudodami paketą 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); ) )

Rezultatas

 Relative Path: ProgramizJavaTime.java

Ankstesniame pavyzdyje mes naudojome sąsajos relativize()metodą, kad Pathgautume santykinį kelią iš dviejų absoliučių kelių.

Rekomenduojami skaitiniai :

  • „Java Paths“ klasė
  • „Java“ kelio sąsaja

Įdomios straipsniai...