欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java NIO Path接口操作文件

程序员文章站 2022-05-12 16:20:08
文章目录1、前言2、Path 的使用2.1 创建一个Path实例2.2 API的使用1、前言Path接口位于java.nio.file包中,所以Path接口的完全限定名称为java.nio.file.Path。Java Path实例表示文件系统中的路径。一个路径可以指向一个文件或一个目录。路径可以是绝对路径,也可以是相对路径。在许多方面,java.nio.file.Path接口类似于java.io.File类,但是有一些细微的差别。不过,在许多情况下,您可以使用Path接口来替换File类的使用。...

1、前言

Path接口位于java.nio.file包中,所以Path接口的完全限定名称为java.nio.file.Path。Java Path实例表示文件系统中的路径。一个路径可以指向一个文件或一个目录。路径可以是绝对路径,也可以是相对路径。在许多方面,java.nio.file.Path接口类似于java.io.File类,但是有一些细微的差别。不过,在许多情况下,您可以使用Path接口来替换File类的使用。

2、Path 的使用

2.1 创建一个Path实例

可以使用Paths类(java.nio.file.Paths)中的静态方法来创建路径实例,名为Paths.get()。

public class PathExample {
    public static void main(String[] args) {
        Path path = Paths.get("D:\\data\\test\\log");
    }
}
2.2 API的使用
  1. static Path get(String first, String… more)

将给定的字符串拼接成路径

 Path absolutePath = Paths.get("G:\\","data","\\test","\\log");
        Path relativepath = Paths.get("test","\\log");
        System.out.println("绝对路径是:"+absolutePath);
        System.out.println("相对路径是:"+relativepath);

控制台输出

绝对路径是:G:\data\test\log
相对路径是:test\log
  1. Path resolve(Path other) 或 Path resolve(String other)

根据指定路径解析路径 若 other 是绝对路径,那么就返回 other ;否则,返回通过连接 this 和 other 获得的路径。

Path path1 = Paths.get("D:\\data\\test\\log");

 System.out.println(path1.resolve("/log")); //D:\log

 System.out.println(path1.resolve("./log"));   //D:\data\test\log\.\log

 System.out.println(path1.resolve("../log"));   //D:\data\test\log\..\log
  1. Path resolveSibling(Path other) 或 Path resolveSibling(String other)

若 other 是绝对路径, 那么就返回 other ;否则,返回通过连接 this 的父路径和 other 获得的路径

 		Path path1 = Paths.get("D:\\data\\test\\log");

        System.out.println(path1.resolveSibling("/log")); //D:\log
       
        System.out.println(path1.resolveSibling("./log"));  //D:\data\test\.\log
       
        System.out.println(path1.resolveSibling("../log"));  //D:\data\test\..\log
  1. toAbsolutePath()

返回与该路径等价的绝对路径


        System.out.println(Paths.get("log","test").toAbsolutePath());  //G:\IDEAplace\multithreading\log\test
  1. relativize(Path other)

构造此路径和给定路径之间的相对路径。

Path path2 = Paths.get("D:\\data\\test\\logs\\java.log");
        
System.out.println(path1.relativize(path2)); //  ..\logs\java.log
  1. subpath(int beginIndex, int endIndex)

截取路径,包括第一个索引,不包括第二个索引

Path path = Paths.get("D:\\data\\test\\log");
System.out.println(path.subpath(0, 2));  //   data\test

其他的请自行参考Api 帮助文档

本文地址:https://blog.csdn.net/weixin_43610698/article/details/110235176