Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 程序從兩個絕對路徑獲取相對路徑

   Java 實例大全

在此示例中,我們將學(xué)習(xí)使用String方法,URI類和java.nio.file包從Java中的兩個絕對路徑獲取相對路徑。

示例1:使用URI類從兩個絕對路徑獲取相對路徑

import java.io.File;
import java.net.URI;

class Main {
  public static void main(String[] args) {

    try {

      //兩個絕對路徑
      File absolutePath1 = new File("C:\\Users\\Desktop\\nhooo\\Java\\Time.java");
      System.out.println("絕對路徑1: " + absolutePath1);
      File absolutePath2 = new File("C:\\Users\\Desktop");
      System.out.println("絕對路徑2: " + absolutePath2);

      //將絕對路徑轉(zhuǎn)換為URI
      URI path1 = absolutePath1.toURI();
      URI path2 = absolutePath2.toURI();

      //從兩個路徑創(chuàng)建相對路徑
      URI relativePath = path2.relativize(path1);

      //將URI轉(zhuǎn)換為字符串
      String path = relativePath.getPath();

      System.out.println("相對路徑: " + path);


    } catch (Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

絕對路徑1: C:\Users\Desktop\nhooo\Java\Time.java
絕對路徑2: C:\Users\Desktop
相對路徑: nhooo/Java/Time.java

在上面的示例中,我們有兩個名為 absolutePath1 和 absolutePath2 的絕對路徑。我們已經(jīng)使用URI類將絕對路徑轉(zhuǎn)換為相對路徑。

  • toURI() - 將File對象轉(zhuǎn)換為Uri

  • relativize() - 通過將兩個絕對路徑相互比較來提取相對路徑

  • getPath() - 將URI轉(zhuǎn)換為字符串

示例2:使用String方法從兩個絕對路徑獲取相對路徑

import java.io.File;

class Main {
  public static void main(String[] args) {

    //創(chuàng)建文件對象
    File file1 = new File("C:\\Users\\Desktop\\nhooo\\Java\\Time.java");
    File file2 = new File("C:\\Users\\Desktop");

    // 將文件對象轉(zhuǎn)換為字符串
    String absolutePath1 = file1.toString();
    System.out.println("絕對路徑1: " + absolutePath1);
    String absolutePath2 = file2.toString();
    System.out.println("絕對路徑2: " + absolutePath2);

    //獲取相對路徑
    String relativePath = absolutePath1.substring(absolutePath2.length());
    System.out.println("絕對路徑: " + relativePath);
  }
}

輸出結(jié)果

絕對路徑1: C:\Users\Desktop\nhooo\Java\Time.java
絕對路徑2: C:\Users\Desktop
絕對路徑: \nhooo\Java\Time.java

在上面的示例中,我們將文件路徑轉(zhuǎn)換為字符串。注意表達(dá)式

absolutePath1.substring(absolutePath2.length())

這里,substring ()方法返回 absolutePath1的一部分,從索引等于 absolutePath2的長度開始。也就是說,從 absolutePath1中刪除 absolutePath2 表示的字符串。

要了解有關(guān)子字符串如何工作的更多信息,請訪問Java String substring()

示例3:使用java.nio.file包從兩個絕對路徑獲取相對路徑

import java.nio.file.Path;
import java.nio.file.Paths;

class Main {
  public static void main(String[] args) {

    //創(chuàng)建文件對象
    Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\nhooo\\Java\\Time.java");
    Path absolutePath2 = Paths.get("C:\\Users\\Desktop");

    //將絕對路徑轉(zhuǎn)換為相對路徑
    Path relativePath = absolutePath2.relativize(absolutePath1);
    System.out.println("相對路徑: " + relativePath);

  }
}

輸出結(jié)果

相對路徑: nhooo\Java\Time.java

在上面的示例中,我們使用了Path接口的relativize()方法從兩個絕對路徑獲取相對路徑。

Java 實例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清