Chương trình Java để lấy đường dẫn tương đối từ hai đường dẫn tuyệt đối

Trong ví dụ này, chúng ta sẽ học cách lấy đường dẫn tương đối từ hai đường dẫn tuyệt đối trong Java bằng cách sử dụng các phương thức String, lớp URI và gói java.nio.file.

Ví dụ 1: Lấy một đường dẫn tương đối từ hai đường dẫn tuyệt đối bằng cách sử dụng lớp URI

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

Đầu ra

 Đường dẫn tuyệt đối1: C: Users Desktop Programiz Java Time.java Đường dẫn tuyệt đối2: C: Users Desktop Đường dẫn tương đối: Programiz / Java / Time.java

Trong ví dụ trên, chúng ta có hai đường dẫn tuyệt đối được đặt tên là tuyệt đối hóa1 và đường dẫn tuyệt đối2. Chúng tôi đã sử dụng lớp URI để chuyển đổi các đường dẫn tuyệt đối thành đường dẫn tương đối.

  • toURI () - chuyển đổi Fileđối tượng thành Uri
  • relativize () - trích xuất đường dẫn tương đối bằng cách so sánh hai đường dẫn tuyệt đối với nhau
  • getPath () - chuyển đổi Uri thành một chuỗi

Đề xuất đọc :

  • Tệp Java
  • Lớp URI của Java

Ví dụ 2: Lấy một đường dẫn tương đối từ hai đường dẫn tuyệt đối bằng cách sử dụng các phương thức Chuỗi

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

Đầu ra

 Đường dẫn tuyệt đối1: C: Users Desktop Programiz Java Time.java Đường dẫn tuyệt đối2: C: Users Desktop Đường dẫn tuyệt đối: Programiz Java Time.java

Trong ví dụ trên, chúng tôi đã chuyển đổi đường dẫn tệp thành chuỗi. Chú ý biểu thức,

 absolutePath1.substring(absolutePath2.length())

Ở đây, substring()phương thức trả về một phần của đường dẫn tuyệt đối bắt đầu từ chỉ mục bằng độ dài của đường dẫn tuyệt đối2. Nghĩa là, chuỗi được biểu diễn bởi AbsolPath2 sẽ bị loại bỏ khỏi AbsolPath1.

Để tìm hiểu thêm về cách hoạt động của chuỗi con, hãy truy cập Java String substring ().

Ví dụ 3: Lấy một đường dẫn tương đối từ hai đường dẫn tuyệt đối bằng cách sử dụng gói 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); ) )

Đầu ra

 Relative Path: ProgramizJavaTime.java

Trong ví dụ trên, chúng ta đã sử dụng relativize()phương thức của Pathinterface để lấy một đường dẫn tương đối từ hai đường dẫn tuyệt đối.

Bài đọc được đề xuất :

  • Lớp Java Paths
  • Giao diện đường dẫn Java

thú vị bài viết...