Java-programm suhtelise tee saamiseks kahest absoluutsest rajast

Selles näites õpime saama suhtelise tee Java kahest absoluutsest rajast, kasutades stringimeetodeid, URI klassi ja paketti java.nio.file.

Näide 1: URI klassi abil saate suhtelise tee kahest absoluutsest rajast

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

Väljund

 Absoluutne tee1: C: Kasutajad Desktop Programiz Java Time.java Absoluutne tee2: C: Users Desktopi suhteline tee: Programiz / Java / Time.java

Ülaltoodud näites on meil kaks absoluutset rada nimega absoluutnePath1 ja absoluutnePath2. Absoluutsete teekondade teisendamiseks suhteliseks teekonnaks oleme kasutanud URI klassi.

  • Touri () - teisendab Fileeseme Uri
  • relativize () - eraldab suhtelise tee, võrreldes kahte absoluutset rada üksteisega
  • getPath () - teisendab Uri stringiks

Soovitatav lugemine :

  • Java-fail
  • Java URI klass

Näide 2: Stringi meetodite abil saate suhtelise tee kahest absoluutsest teest

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

Väljund

 Absoluutne tee1: C: Kasutajad Desktop Programiz Java Time.java Absoluutne tee2: C: Users Desktop Absoluutne tee: Programiz Java Time.java

Ülaltoodud näites oleme failiteed stringideks teisendanud. Pange tähele väljendit

 absolutePath1.substring(absolutePath2.length())

Siin substring()tagastab meetod absoluutse Path1 osa, mis algab indeksist, mis võrdub absoluutse Path2 pikkusega. See tähendab, et string, mida tähistab absoluutnePath2, eemaldatakse absoluutsest teekonnast1.

Alamstringide toimimise kohta lisateabe saamiseks külastage Java Stringi alamstringi ().

Näide 3: Paketi java.nio.file abil saate suhtelise tee kahest absoluutsest rajast

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

Väljund

 Relative Path: ProgramizJavaTime.java

Ülaltoodud näites oleme kasutanud liidese relativize()meetodit, Pathet saada suhteline tee kahest absoluutsest rajast.

Soovitatavad lugemised :

  • Java Paths klass
  • Java tee liides

Huvitavad Artiklid...