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 实例,比如 getParentgetRoot

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);