龙空技术网

Java文件的路径操作

青芽草 162

前言:

此时看官们对“pathjava”大致比较关心,小伙伴们都需要剖析一些“pathjava”的相关知识。那么小编也在网络上搜集了一些对于“pathjava””的相关内容,希望咱们能喜欢,我们快快来了解一下吧!

比较路径

我们可以基于它们的文本表示来比较两个Path对象的相等性。

equals()方法通过比较它们的字符串形式来测试两个Path对象的相等性。

等式测试是否区分大小取决于文件系统。

以下代码显示如何比较Windows路径:

import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("C:\\Java_Dev\\test1.txt");  Path p2 = Paths.get("C:\\Java_Dev\\LUCI1.TXT"); Path p3 = Paths.get("C:\\Java_Dev\\..\\Java_Dev\\test1.txt");  boolean b1 = p1.equals(p2); System.out.println(b1); boolean b2 = p1.equals(p3); System.out.println(b2); }}

equals()方法在不解析实际文件引用的情况下以文本方式比较两个路径,并且不会测试文件系统中是否存在路径。

Path接口实现java.lang.Comparable接口。我们可以使用它的compareTo()方法来与另一个Path对象进行文本比较。

compareTo()方法返回一个int值。

0 - 当两条路径相等时小于0 - 路径小于指定的路径大于0 - 路径大于指定的路径

规范化路径

Path接口的normalize()方法在删除点字符后返回一个Path。

此方法不访问文件系统。

以下代码显示了在Windows上标准化路径的一些示例。

import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("C:\\Java_Dev\\..\\\\Java_Dev\\test1.txt"); Path p1n = p1.normalize(); System.out.println(p1 + " normalized to " + p1n); Path p2 = Paths.get("C:\\Java_Dev\\test1.txt"); Path p2n = p2.normalize(); System.out.println(p2 + " normalized to " + p2n); Path p3 = Paths.get("\\..\\.\\test.txt"); Path p3n = p3.normalize(); System.out.println(p3 + " normalized to " + p3n); }}

解决路径

我们可以使用Path接口的resolve(Path p)方法组合两个路径。

如果指定的路径是绝对路径,则返回指定的路径。如果指定的路径是空路径,则返回路径。

在其他情况下,它只是组合两个路径并返回结果,因此返回的路径以指定的路径结束。

以下代码具有一些解析路径的示例。

import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("C:\\Java_Dev"); Path p2 = Paths.get("test1.txt"); System.out.println(p1.resolve(p2)); Path p3 = Paths.get("C:\\test.txt"); System.out.println(p1.resolve(p3)); Path p4 = Paths.get(""); System.out.println(p1.resolve(p4)); Path p5 = Paths.get("Java_Dev\\Test"); Path p6 = Paths.get("test4.txt"); System.out.println(p5.resolve(p6)); }}

相关路径

Path接口的relativize(Path p)方法获得给定路径相对于另一个路径的相对路径。

以下代码有一些获取相对路径的示例。

import java.nio.file.Path;import java.nio.file.Paths;public class Main { public static void main(String[] args) throws Exception { Path p1 = Paths.get("Java_Dev"); Path p2 = Paths.get("Java_Dev", "recent", "Test"); System.out.println(p1.relativize(p2)); System.out.println(p2.relativize(p1)); Path p3 = Paths.get("Abc"); Path p4 = Paths.get("Def"); System.out.println(p3.relativize(p4)); System.out.println(p4.relativize(p3)); }}

标签: #pathjava