文章目录

  • 一、引言
  • 二、Path接口
    • ① 创建Path实例
    • ② 创建绝对路径Path
    • ③ 创建相对路径Path
    • ④ . 与 . .
      • . 表示当前路径
      • . . 表示父类目录
    • ⑤ 使用Path.normalize()标准化路径
  • 三、Paths
  • Last Article

一、引言

JDK 7 对 NIO增强了对文件处理和文件系统特性的支持,因为 NIO 提供的一些功能,NIO已经成为文件处理中越来越重 要的部分。

二、Path接口

Path 接口表示文件系统的路径。可以指向文件或文件夹。也有相对路径和绝对路径之分。在很多方面,画图java.nio.file.Path 接口java.io.File有相似性,但也有一些细微的差别。在很多情况下,可以用Path来代替File类。

① 创建Path实例

可以使用Paths类的静态方法Paths.get()来产生一个实例.

import java.nio.file.Path;
import java.nio.file.Paths;
public class PathExample {public static void main(String[] args) {Path path = Paths.get("c:\\data\\myfile.txt");
}

代码开头导入了两个包是因为Paths使用了Paths.get()方法创建了Path的实例。它是一个工厂方法。


② 创建绝对路径Path

windows下的路径写法,\为转义字符.

Path path = Paths.get("c:\\data\\myfile.txt");

在Unix系统(Linux,MacOS,FreeBSD等)中,上面中的path是这样的:

Path path = Paths.get("/home/jakobjenkov/myfile.txt");

:如果把以/开头path的格式运行在windows系统中,会将其解析为相对路径。例如:左边的路径将会被解析为路径是在C盘。其对应的绝对路径是:

/home/myfile.txt ---> C:/home/myfile.txt

③ 创建相对路径Path

相对路径指从一个已确定的路径开始到某一文件或文件夹的路径。可以通过Paths.get(basePath, relativePath)创建一个相对路径Path.

Path projects = Paths.get("d:\\data", "projects");
Path file = Paths.get("d:\\data", "projects\\a-project\\myfile.txt");

1例子创建了一个指向d:\data\projects文件夹的实例。

2例子创建了一个指向d:\data\projects\a-project\myfile.txt文件的实例。


④ . 与 . .

. 表示当前路径

1. 用在路径中:

Path currentDir = Paths.get(“d:\\data\\projects\.\a-project”);

对应的就是如下路径

d:\data\projects\a-project

2. 用在创建path实例中:

创建的currentDir对应的路径就是运行这段代码的项目工程目录。

Path currentDir = Paths.get(".");
System.out.println(currentDir.toAbsolutePath());

. . 表示父类目录

1. 用在路径中:

Path currentDir = Paths.get(“d:\\data\\..\a-project”);

对应的就是如下路径

d:\a-project

在data目录后面的. .符号,将指向的目录修改为d目录,因此,最终path指向d目录。


2. 用在创建path实例中:

Path parentDir = Paths.get(“..”);

Path对应的路径是当前运行程序目录的上级目录。


⑤ 使用Path.normalize()标准化路径

标准化的含义是路径中的.和. .都被去掉,指向真正的路径目录地址。

String originalPath = "d:\\data\\projects\\a-project\\..\\another-project";Path path1 = Paths.get(originalPath);
System.out.println("path1 = " + path1);Path path2 = path1.normalize();
System.out.println("path2 = " + path2);

输出结果:

path1 = d:\data\projects\a-project\..\another-project
path2 = d:\data\projects\another-project

标准化后的路径不再包含 a-project…部分,因为它是多余的。


三、Paths

Paths提供的get()方法用来获取 Path 对象
Path get(String first, String … more) 用于将多个字符串串连成路径。


Last Article

【2.2】Pipe 管道

【3.1】Path 与 Paths 类相关推荐

  1. Java操作文件Path 和 Paths 及Files类介绍

    我们平时操作文件时可能要写一大堆代码.JDK1.7引入了好用的Path 和 Paths类. 创建文件,删除文件,复制文件,查找文件,查找文件个数等,只需要调一个Api就能解决,下面开始进行介绍. 1. ...

  2. JavaIO流_下(NIO.2中Path、Paths、Files类的使用)

    NIO.2中Path.Paths.Files类的使用 Java NIO 概述 ​ Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO AP ...

  3. NIO.2中Path、 Paths、Files类的使用

    NIO.2中Path.Paths.Files类的使用 1.NIO概述 2.NIO. 2 3.Path 接口 4.Files 类 package com.atguigu.java;import org. ...

  4. Java NIO文件路径管理:Path类和Paths类

    本文章主要包括如下几个章节:类介绍.Path实例获取和文件路径管理.文件路径管理中,主要介绍了Path中定义的主要方法. 1.类的介绍 Path接口 是JDK1.7中定义的接口,主要用来在文件系统中定 ...

  5. Java IO Path接口和Paths类

    public final class Paths extends Object 此类仅由静态方法组成,通过转换路径字符串返回Path或URI . static Path get(String firs ...

  6. java path类_基于java Files类和Paths类的用法(详解)

    Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream; import java.nio.file.FileSystem ...

  7. 【Java基础】Java7新特性—Files类,Path类,Paths类的用法

    文章目录 Java7新增文件IO类 一.Paths 1.创建Paths 二.Path 1.创建Path 1.1.创建Path的三种方式 2.Path常用方法 三.Files 1.判断方法: 2.删除方 ...

  8. java path file转换_Java-技术专区-Files类和Paths类的用法

    A Path represents a path that is hierarchical and composed of a sequence of directory and file name ...

  9. java getfiles_Java基础教程——File类、Paths类、Files类

    File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...

最新文章

  1. python03-异常处理
  2. 并查集-hdu3083-How Many Answers Are Wrong
  3. OpenCV学习之路之OpenCV安装(VS2013版)
  4. Visual computing——概述
  5. java用十字链表实现无向图_实验四:图的实现与应用
  6. 1818国民经济核算
  7. 广东计算机电子学校,广东省电子职业技术学校
  8. 滴滴经验分享:SQLFlow如何让运营专家用上AI?
  9. gradle对java插件的扩展_Gradle之java插件入门
  10. infomixdb mysql_不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句
  11. @程序员,你该如何做职业规划才能不被“废”?
  12. 手动方式配置IPsec隧道
  13. [谈现在的PSP与NDSi]
  14. LaTeX Beamer 制作PPT时给某一页添加背景图片(并设置透明度)
  15. 如何用html语言制作圆角矩形,webGL中圆角矩形的绘制
  16. php 参数与数字比较,PHP8中字符串与数字的比较更智能
  17. 高等数学——傅里叶级数
  18. spring-boot+freemarker完美导出word文档
  19. r语言 面板数据回归_面板数据估计的R实现
  20. 提取Seurat格式单细胞metadata和counts 新建seurat object

热门文章

  1. [经济杂谈]简单的漫画(阐述金融战争的基本原理)
  2. 【C函数】sysinfo获取系统相关信息
  3. 只需一台电脑,人人都可用 Python 实现新冠病毒分布实时追踪
  4. Mybatis框架原理
  5. Linux的常用命令chmod(文件的权限777和755)
  6. java如何清除缓冲区_清理缓冲区的方法
  7. 老罗最新发布了“子弹短信”这款IM,主打熟人社交能否对标微信?
  8. 出售时间之前你要牢记的三条铁律(上)
  9. Android集成阿里云推送功能
  10. 取一个网络安全公司的名字