李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
08.NIO之Path介绍
Leefs
2022-05-29 PM
1384℃
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
NLP
4
标签云
人工智能
栈
Quartz
MyBatis-Plus
国产数据库改造
Spring
NIO
Spark
Yarn
工具
Tomcat
Eclipse
链表
Http
JavaWEB项目搭建
gorm
Beego
算法
Filter
Nacos
微服务
稀疏数组
随笔
Golang
MyBatis
SQL练习题
容器深入研究
FileBeat
RSA加解密
HDFS
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭