English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在此示例中,我们将学习使用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(path)1); //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의 일부를, index가 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
위의 예제에서는 두絶대 경로에서 상대 경로를 얻기 위해 Path 인터페이스의 relativize() 메서드를 사용했습니다.