1.Path
类
如果您想编写一个程序来处理磁盘上的文件,那很容易。Java 有很多类可以帮助您处理文件本身及其内容。
Java 的早期版本使用File
和之类的类FileInputStream
来处理文件。但是,该类File
现已弃用,不建议使用。当然,你可能仍然会在代码、方法参数或类构造函数中遇到它。
从一开始,我们将开始学习如何使用该类处理文件Path
。Path
是替换的类File
。它更安全、更高效。
Path
班级
从技术上讲,Path
它不是一个类——它是一个接口。Path
这样做是为了允许为每个操作系统(和文件系统)编写类的后代。
Windows 有一个写入文件路径的标准,而 Linux 有另一个。当然,世界上还有很多其他的操作系统,每个都有自己的标准。
这就是为什么Path
在处理文件的方法中到处都使用接口的原因,尽管实际上工作是通过其后代类进行的:WindowsPath
, UnixPath
, ...
创建Path
对象
要创建一个Path
对象(实际上是WindowsPath
子类的对象),您需要使用如下语句:
Path name = Path.of(path);
其中name
是变量的名称Path
,path
是文件(或目录)的路径,包括文件(或目录)的名称。并且of
是类的静态方法Path
。
如果程序在 Windows 上运行,则该of()
方法用于创建对象。WindowsPath
如果程序在 Linux 上运行,则UnixPath
创建对象。您不能使用Path
像.new Path()
例子:
代码 | 笔记 |
---|---|
|
文件路径 |
|
目录路径 |
文件(或目录)不需要存在才能使有效Path
对象存在。也许你只是想创建一个文件......一个Path
对象就像一个加强版String
:它没有绑定到磁盘上的特定文件——它只是在磁盘上存储一个特定的路径。就是这样。
Path
2.类型的方法
该Path
接口有很多有趣的方法。下表列出了最有趣的一些。
方法 | 描述 |
---|---|
|
返回父目录 |
|
返回没有目录的文件名 |
|
从路径返回根目录 |
|
检查当前路径是否是绝对路径 |
|
将路径转换为绝对路径 |
|
删除目录名称中的通配符。 |
|
从绝对路径和相对路径构造一个新的绝对路径。 |
|
从两个绝对路径中获取一个相对路径。 |
|
检查当前路径是否以给定路径开头 |
|
检查当前路径是否以给定路径结束 |
|
/ 使用作为分隔符将路径拆分为多个部分。返回零件数。 |
|
/ 使用作为分隔符将路径拆分为多个部分。按其索引返回一个部分。 |
|
/ 使用作为分隔符将路径拆分为多个部分。返回对应于给定间隔的子路径。 |
|
将对象转换Path 为已弃用的File 对象 |
|
将Path 对象转换为URI 对象 |
以下是对现有方法的简要说明。
3.将路径分成几部分
该getParent()
方法返回指向当前路径的父目录的路径。不管这个路径是目录还是文件:
代码 | 价值 |
---|---|
|
|
|
|
|
|
该getFileName()
方法返回单个文件(或目录)名称——无论最后一个定界符之后是什么:
代码 | 价值 |
---|---|
|
|
|
|
|
|
该getRoot()
方法返回根目录的路径:
代码 | 价值 |
---|---|
|
|
4.绝对路径和相对路径
有两种类型的路径:绝对路径和相对路径。绝对路径从根目录开始。对于 Windows,这可能是c:\
文件夹;对于 Linux —/
目录
相对路径相对于某个目录是有意义的。也就是说,它就像路的尽头,但没有开始。您可以将相对路径转换为绝对路径,反之亦然
boolean isAbsolute()
方法
该方法检查当前路径是否是绝对路径
代码 | 价值 |
---|---|
|
|
|
|
Path toAbsolutePath()
方法
将路径转换为绝对路径。如有必要,将当前工作目录添加到其中:
代码 | 价值 |
---|---|
|
|
|
|
Path normalize()
方法
在路径中,可以不用目录名,而写“..”,意思是返回一个目录。规范化消除了这些东西。例子:
代码 | 价值 |
---|---|
|
|
|
|
Path relativize(Path other)
方法
该relativize()
方法允许您构建“路径之间的差异”:一条路径相对于另一条路径
代码 | 价值 |
---|---|
|
|
|
|
|
非法参数异常: 这两条路径有不同的“根”(不同的磁盘) |
Path resolve(Path other)
方法
该resolve()
方法的作用与 相反relativize()
:它从绝对路径和相对路径构建新的绝对路径。
代码 | 价值 |
---|---|
|
|
|
|
toFile()
方法
该方法返回一个已弃用的File
对象,该对象存储与该对象相同的文件路径Path
。
toURI()
方法
该方法将路径转换为标准URI,并返回一个包含文件路径的对象:
文件路径 | 文件的 URI |
---|---|
|
|