Path和Paths
Path 是JDK1.7中定义的接口, Path 代表了一个路径,这个路径可以是一个文件夹,也可以是一个文件。以下是openJDK1.8中的 Path 相关类图结构
Paths 是一个用于创建Path **的工厂类**,它里面有两个重载的 get 方法用来创建 Path 类。
Path 的实现类,无法通过new 来创建,我们可以通过以下的几种方式创建 Path 对象
- 使用
Paths类中的get方法来创建Path。 - 通过
File对象的toPath方法创建Path - 通过调用
Path实例的方法创建新的Path实例,比如getParent,getRoot
Path 类中定义了很多获取路径相关信息的方法,以下列举几个常用的方法
String userDir = System.getProperty("user.dir"); //C:\Users\PC\IdeaProjects\dbtestPath path = Paths.get(userDir); //创建一个Path对象System.out.println(path); //C:\Users\PC\IdeaProjects\dbtest//获取根路径System.out.println(path.getRoot()); //这里输出是C:/。 如果是Linux或MacOS系统,根路径就是///获取上级路径System.out.println(path.getParent()); //C:\Users\PC\IdeaProjects//获取离根目录最远的路径名称System.out.println(path.getFileName()); //dbtest//返回路径中名称元素的数量。根路径除外int count = path.getNameCount(); // 4for (int i = 0; i < count; i++) {//返回这个索引对应的路径元素System.out.println(path.getName(i)); //Users。 PC。 IdeaProjects。 dbtest}//========以上方法都是返回新的Path对象
Path还有一些其他方法,这里也就不再介绍了,大家可以自行再去摸索。
Path 本身并不包含任何操作文件的方法,如果要操作文件或目录,就需要与 Files 类一起使用。
Files
Files 类可以理解为是一个工具类,它里面包含了很多对文件操作的静态方法,这些方法都需要传入Path对象。
下面列举几个Files的常用方法。
//判断Path是文件还是文件夹System.out.println(Files.isDirectory(path));//判断是否路径存在System.out.println(Files.exists(path));//获取子目录Stream<Path> list = Files.list(path);list.forEach(System.out::println);Files.delete(path);
