李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
08.NIO之Path介绍
Leefs
2022-05-29 PM
863℃
0条
[TOC] ### 一、Path介绍 Path接口是java NIO2的一部分。首次在java 7中引入。Path接口在`java.nio.file`包下,所以全称是`java.nio.file.Path`。 java中的Path表示文件系统的路径。可以指向文件或文件夹。 **Path同时也有相对路径和绝对路径之分:** + **绝对路径**:表示从文件系统的根路径到文件或是文件夹的路径。 + **相对路径**:表示从特定路径下访问指定文件或文件夹的路径。 ### 二、Path方法介绍 #### 2.1 创建Path实例 如果使用java.nio.file.Path实例,必须先创建它。通过`Paths.get(String first, String… more)`静态工厂方法创建。 ```java import java.nio.file.Path; import java.nio.file.Paths; /** * Created by lilinchao * Date 2022/5/29 * Description 1.0 */ public class PathDemo { public static void main(String[] args) { //创建Path实例 Path path = Paths.get("D:\\path_test\\first_path.txt"); } } ``` #### 2.2 创建绝对路径 **以绝对路径文件作为参数**调用Paths.get()工厂方法就是创建一个绝对Path实例。 ```java // windows 系统 Path path = Paths.get("D:\\path_test\\first_path.txt"); // Unix系统 Path path = Paths.get("/home/path_test/first_path.txt"); ``` **说明** + 参数`D:\\path_test\\first_path.txt`是一个绝对路径。 有两个`\`字符的原因是第一个`\`是转义字符,表示紧跟着它的字符需要被转义。 `\\`表示需要向字符串中写入一个`\`字符。 + 在Unix系统(Linux,MacOS,FreeBSD等)中通过使用`/`来表示路径 #### 2.3 创建相对路径 **相对路径指从一个已确定的路径开始到某一文件或文件夹的路径。将确定路径和相对路径拼接起来就是相对路径对应的绝对路径地址。** Paths类可以创建相对路径的实例,可以使用`Paths.get(String basePath, String relativePath)`方法来创建一个相对路径的实例 ```java //创建一个指向d:\path_test\demo文件夹路径的实例 Path path = Paths.get("d:\\path_test", "demo"); // 创建一个指向d:\path_test\demo\first_path.txt文件路径的实例 Path path = Paths.get("d:\\path_test", "demo\\first_path.txt"); ``` 通过上方的示例,第一感觉就是,将两个参数拼接起来以构成一个访问该文件的绝对路径。 这样理解也没有错,只是,参数的路径表达方式更加的灵活,可以跟上特殊符号`.`和`..`。 + **`.`代表当前目录** ```java // 绝对路径就是该代码运行时的目录的绝对路径 Path currentDir = Paths.get("."); System.out.println(currentDir.toAbsolutePath()); ``` **运行结果** ``` D:\Codes\idea\netty-demo\. ``` + **`..`代表父目录或者是上一级目录** ```java // Path实例的绝对路径就是该代码运行时的父目录的绝对路径 Path parentDir = Paths.get(".."); System.out.println(parentDir.toAbsolutePath()); ``` **运行结果** ``` D:\Codes\idea\netty-demo\.. ``` + . **和 … 可以在Paths.get() 方法中结合使用** ```java Path path1 = Paths.get("d:\\path_test", ".\\demo"); Path path2 = Paths.get("d:\\path_test\\demo", "..\\demo2"); ``` #### 2.4 Path.normalize()方法 Path接口中的normalize()可以标准化一个路径。标准化意思是解析路径中的`.`和 `..` 。 **示例** ```java String originalPath = "d:\\path_test\\demo\\..\\demo2"; Path path1 = Paths.get(originalPath); System.out.println("path1 = " + path1); Path path2 = path1.normalize(); System.out.println("path2 = " + path2); ``` **运行结果** ``` path1 = d:\path_test\demo\..\demo2 path2 = d:\path_test\demo2 ``` 我们可以看到规范化的路径没有包含`demo..`多余的部分,移除的部分对于绝对路径是无关紧要的。 *附参考文章链接:* *https://www.cnblogs.com/meow-world/articles/16026894.html*
标签:
Netty
,
NIO
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/2093.html
上一篇
07.NIO之FileChannel练习
下一篇
09.NIO之Files介绍
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
递归
Java工具类
Livy
Eclipse
Tomcat
Spark
随笔
GET和POST
栈
Sentinel
DataWarehouse
Java编程思想
Map
序列化和反序列化
Netty
持有对象
Spark SQL
VUE
Scala
SpringBoot
Spring
HDFS
排序
线程池
Zookeeper
Kafka
锁
Ubuntu
RSA加解密
SpringCloudAlibaba
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞