Java NIO - Path(路径)

Java NIO - Path(路径) 首页 / Nio入门教程 / Java NIO - Path(路径)

顾名思义,Path是实体(如文件或目录)在文件系统中的特定位置,以便人们可以在该特定位置搜索和访问它。

通常,一个实体的路径可以是两种,一种是绝对路径,另一种是相对路径,为了获得Path的,无涯教程可以使用java.nio.file.Paths类 get()的静态方法。

无涯教程网

如上所述,绝对路径是通过传递根元素和定位文件所需的完整目录列表来检索的,而相对路径可以通过将基本路径和相对路径组合来检索,两个路径的检索将在以下示例中进行说明

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path relative = Paths.get("file2.txt");
      System.out.println("Relative path: " + relative);
      Path absolute = relative.toAbsolutePath();
      System.out.println("Absolute path: " + absolute);
   }
}

到目前为止知道什么是Path接口,为什么需要它以及如何访问它。现在将知道Path接口提供了哪些重要方法。

重要方法

  • getFileName()                      - 返回创建此对象的文件名。

  • getName()                             - 返回此Path的名称。

  • getNameCount()                  - 返回Path中名称的数量。

  • subpath()                               - 返回相对路径,该路径是名称的子序列。

  • getParent()                            - 返回父Path,如果没有,则返回null。

  • getRoot()                               - 返回根(Root)路径,如果没有,则返回null。

  • toAbsolutePath()                 - 返回绝对路径。

  • toRealPath()                         - 返回文件真实路径。

  • toFile()                                   - 返回File对象。

  • normalize()                           - 返回路径,其中消除了多余的名称。

  • compareTo(Path other)      - 按字典顺序比较两个文件路径。

  • endsWith(Path other)         - 判断该路径是否以给定路径结尾。

  • endsWith(String other)      - 判断此路径是否以指定的字符串结尾,

以下示例说明了上面提到的Path接口的不同方法-

package com.java.nio;
import java.io.IOException;
import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.file.FileSystem;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
   public static void main(String[] args) throws IOException {
      Path path = Paths.get("D:/workspace/ContentW/Saurav_CV.docx");
      FileSystem fs =  path.getFileSystem();
      System.out.println(fs.toString());
      System.out.println(path.isAbsolute());
      System.out.println(path.getFileName());
      System.out.println(path.toAbsolutePath().toString());
      System.out.println(path.getRoot());
      System.out.println(path.getParent());
      System.out.println(path.getNameCount());
      System.out.println(path.getName(0));
      System.out.println(path.subpath(0, 2));
      System.out.println(path.toString());
      System.out.println(path.getNameCount());
      Path realPath = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
      System.out.println(realPath.toString());
      String originalPath = "d:\\data\\projects\\a-project\\..\\another-project";
      Path path1 = Paths.get(originalPath);
      Path path2 = path1.normalize();
      System.out.println("path2=" + path2);
   }
}

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

邱岳的产品手记 -〔邱岳〕

人人都能学会的编程入门课 -〔胡光〕

物联网开发实战 -〔郭朝斌〕

陈天 · Rust 编程第一课 -〔陈天〕

快手 · 移动端音视频开发实战 -〔展晓凯〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

零基础学Python(2023版) -〔尹会生〕

大型Android系统重构实战 -〔黄俊彬〕

云时代的JVM原理与实战 -〔康杨〕

好记忆不如烂笔头。留下您的足迹吧 :)