Java Path relativize()方法及示例
java.nio.file . Path 的 relativize(Path other) 方法用于在这个路径和一个给定的路径之间创建一个相对路径作为参数。相对化是解析的逆过程。这个方法创建了一个相对路径,当对这个路径对象进行解析时,产生的路径可以帮助我们找到与给定路径相同的文件。例如, 如果这个路径是”/dir1/dir2″,给定路径作为参数是”/dir1/dir2/dir3/file1″,那么这个方法将构建一个相对路径 “dir3/file1″。如果这个路径和给定的路径没有一个根组件,那么可以构建一个相对路径。如果其中任何一个路径有根成分,那么相对路径就不能被构建。如果两个路径都有根部分,那么是否能构建相对路径取决于实现。如果这个路径和给定的路径相等,那么将返回一个空路径。
语法
Path relativize(Path other)
参数: 该方法接受一个参数 , 即与该路径相对应的路径。
返回值: 该方法返回结果的相对路径,如果两个路径相等,则返回一个空路径。
异常: 如果other不是一个可以相对化的路径,这个方法会抛出IllegalArgumentException。
下面的程序说明了relativize()方法。
程序1 :
// Java program to demonstrate
// java.nio.file.Path.relativize() method
import java.nio.file.Path;
import java.nio.file.Paths;
public class GFG {
public static void main(String[] args)
{
// create objects of Path
Path path
= Paths.get("D:\\eclipse\\p2"
+ "\\org\\eclipse");
Path passedPath
= Paths.get("D:\\eclipse\\p2"
+ "\\org\\eclipse\\equinox\\p2\\core"
+ "\\cache\\binary");
// print paths
System.out.println("This Path:"
+ path);
System.out.println("Given Path:"
+ passedPath);
// call relativize() to create
// a relative path
Path relativize
= path.relativize(passedPath);
// print result
System.out.println("Relative Path: "
+ relativize);
}
}
输出:
程序2 :
// Java program to demonstrate
// java.nio.file.Path.relativize() method
import java.nio.file.Path;
import java.nio.file.Paths;
public class GFG {
public static void main(String[] args)
{
// create objects of Path
Path path
= Paths.get("\\nEclipseWork");
Path passedPath
= Paths.get("\\nEclipseWork\\GFG"
+ "\\bin\\defaultpackage");
// print paths
System.out.println("This Path:"
+ path);
System.out.println("Given Path:"
+ passedPath);
// call relativize()
// to create a relative path
Path relativize
= path.relativize(passedPath);
// print result
System.out.println("Relative Path: "
+ relativize);
}
}
输出:
参考文献: https://docs.oracle.com/javase/10/docs/api/java/nio/file/Path.html#relativize(java.nio.file.Path)