亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java 程序從兩個(gè)絕對(duì)路徑獲取相對(duì)路徑

   Java 實(shí)例大全

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

示例1:使用URI類從兩個(gè)絕對(duì)路徑獲取相對(duì)路徑

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

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

    try {

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

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

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

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

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


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

輸出結(jié)果

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

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

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

  • relativize() - 通過(guò)將兩個(gè)絕對(duì)路徑相互比較來(lái)提取相對(duì)路徑

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

示例2:使用String方法從兩個(gè)絕對(duì)路徑獲取相對(duì)路徑

import java.io.File;

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

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

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

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

輸出結(jié)果

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

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

absolutePath1.substring(absolutePath2.length())

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

要了解有關(guān)子字符串如何工作的更多信息,請(qǐng)?jiān)L問(wèn)Java String substring()。

示例3:使用java.nio.file包從兩個(gè)絕對(duì)路徑獲取相對(duì)路徑

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

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

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

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

  }
}

輸出結(jié)果

相對(duì)路徑: nhooo\Java\Time.java

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

Java 實(shí)例大全