Path和Paths

Path 是JDK1.7中定义的接口, Path 代表了一个路径,这个路径可以是一个文件夹,也可以是一个文件。以下是openJDK1.8中的 Path 相关类图结构
image.png
Paths 是一个用于创建Path **的工厂类**,它里面有两个重载的 get 方法用来创建 Path 类。

Path 的实现类,无法通过new 来创建,我们可以通过以下的几种方式创建 Path 对象

  1. 使用 Paths 类中的 get 方法来创建 Path 。
  2. 通过 File 对象的 toPath 方法创建 Path
  3. 通过调用 Path 实例的方法创建新的 Path 实例,比如 getParent , getRoot

Path 类中定义了很多获取路径相关信息的方法,以下列举几个常用的方法

  1. String userDir = System.getProperty("user.dir"); //C:\Users\PC\IdeaProjects\dbtest
  2. Path path = Paths.get(userDir); //创建一个Path对象
  3. System.out.println(path); //C:\Users\PC\IdeaProjects\dbtest
  4. //获取根路径
  5. System.out.println(path.getRoot()); //这里输出是C:/。 如果是Linux或MacOS系统,根路径就是/
  6. //获取上级路径
  7. System.out.println(path.getParent()); //C:\Users\PC\IdeaProjects
  8. //获取离根目录最远的路径名称
  9. System.out.println(path.getFileName()); //dbtest
  10. //返回路径中名称元素的数量。根路径除外
  11. int count = path.getNameCount(); // 4
  12. for (int i = 0; i < count; i++) {
  13. //返回这个索引对应的路径元素
  14. System.out.println(path.getName(i)); //Users。 PC。 IdeaProjects。 dbtest
  15. }
  16. //========以上方法都是返回新的Path对象

Path还有一些其他方法,这里也就不再介绍了,大家可以自行再去摸索。

Path 本身并不包含任何操作文件的方法,如果要操作文件或目录,就需要与 Files 类一起使用。

Files

Files 类可以理解为是一个工具类,它里面包含了很多对文件操作的静态方法,这些方法都需要传入Path对象。
下面列举几个Files的常用方法。

  1. //判断Path是文件还是文件夹
  2. System.out.println(Files.isDirectory(path));
  3. //判断是否路径存在
  4. System.out.println(Files.exists(path));
  5. //获取子目录
  6. Stream<Path> list = Files.list(path);
  7. list.forEach(System.out::println);
  8. Files.delete(path);