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:它没有绑定到磁盘上的特定文件——它只是在磁盘上存储一个特定的路径。就是这样。
Path2.类型的方法
该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 |
|---|---|
|
|
GO TO FULL VERSION