English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java полная коллекция примеров
В этом примере мы изучим, как использовать методы String, класс URI и пакет java.nio.file для получения относительного пути из двух абсолютных путей в Java.
import java.io.File; import java.net.URI; class Main { public static void main(String[] args) { try { // Два абсолютных пути File absolutePath1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); System.out.println("Абсолютный путь 1: " + absolutePath1); File absolutePath2 = new File("C:\\Users\\Desktop"); System.out.println("Абсолютный путь 2: " + absolutePath2); // Преобразование абсолютного пути в URI URI path1 = absolutePath1.toURI(); URI path2 = absolutePath2.toURI(); // Создание относительного пути из двух путей URI relativePath = path2.relativize(path1); // Преобразование URI в строку String path = relativePath.getPath(); System.out.println("Относительный путь: " + path); } catch (Exception e) { e.getStackTrace(); {} {} {}
Результат вывода
Абсолютный путь 1: C:\Users\Desktop\w3codebox\Java\Time.java Абсолютный путь 2: C:\Users\Desktop Относительный путь: w3codebox/Java/Time.java
В примере выше у нас есть два абсолютных пути с именами absolutePath1 и absolutePath2. Мы использовали класс URI для преобразования абсолютных путей в относительные.
toURI() - Преобразование объекта File вUri
relativize() - Получение относительного пути, сравнивая два абсолютных пути
getPath() - Преобразование URI в строку
import java.io.File; class Main { public static void main(String[] args) { //Создание объекта файла File file1 = new File("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); File file2 = new File("C:\\Users\\Desktop"); // Преобразование объекта файла в строку 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); {} {}
Результат вывода
Абсолютный путь 1: C:\Users\Desktop\w3codebox\Java\Time.java Абсолютный путь 2: C:\Users\Desktop Абсолютный путь: \w3codebox\Java\Time.java
В上面的 примере мы преобразуем путь к файлу в строку. Обратите внимание на выражение
absolutePath1.substring(absolutePath2.length())
Здесь метод substring () возвращает часть absolutePath1, начинающуюся с индекса, равного длине absolutePath2. То есть, из absolutePath1 удаляется строка, представленная absolutePath2.
Для получения дополнительной информации о том, как работает подстрока, посетитеJava String substring().
import java.nio.file.Path; import java.nio.file.Paths; class Main { public static void main(String[] args) { //Создание объекта файла Path absolutePath1 = Paths.get("C:\\Users\\Desktop\\w3codebox\\Java\\Time.java"); Path absolutePath2 = Paths.get("C:\\Users\\Desktop"); //Преобразование абсолютного пути в относительный Path relativePath = absolutePath2.relativize(absolutePath1); System.out.println("Относительный путь: " + relativePath); {} {}
Результат вывода
Относительный путь: w3codebox\Java\Time.java
В上面的 примере, мы использовали метод relativize() интерфейса Path для получения относительного пути из двух абсолютных путей.