NIO.2 把位置(由Path表示)的概念和物理文件系统的处理(比如复制一个文件)分得很清楚,物理文件系统的处理通常由Files辅助类实现;
类 |
---|
Path Path类中的方法可以用来获取路径信息,访问路径中的各元素,将路径转换为其他形式,或 提取路径中的一部分。有的方法还可以匹配路径字符串以及移除路径中的冗余项 Paths 工具类,提供返回一个路径的辅助方法,比如get(String first,String… more)和get(URI uri) FileSystem 与文件系统交互的类,无论是默认的文件系统,还是通过统一资源标识(URI)获取的可选 文件系统 FileSystems 工具类,提供各种方法,比如其中用于返回默认文件系统的FileSystems.getDefault() |
Path不一定代表真实的文件或目录,用Files中的功能来检查文件是否存在,并对它进行处理
public class PathDemo {
public static void main(String[] args) throws IOException {
//从Path中获取信息
Path listing = Paths.get("D:\\work\\zk\\opensource\\javase");
System.out.println("File Name ["+listing.getFileName()+"]");
System.out.println("Number of Name Elements in the Path ["+listing.getNameCount()+"]");
System.out.println("Parent Path ["+listing.getParent()+"]");
System.out.println("Root of Path ["+listing.getRoot()+"]");
//创建一个Path
Path filePath = Paths.get("./PathDemo.java");
boolean exists = Files.exists(filePath);
System.out.println(exists);
filePath = Paths.get("./src/com/thinking/in/java/course/chapter18/nio/PathDemo.java");
exists = Files.exists(filePath);
System.out.println(exists);
//移除冗余符号("./")
Path normalize = Paths.get("./src/com/thinking/in/java/course/chapter18/nio/PathDemo.java").normalize();
System.out.println(normalize);
//合并一个路径
Path prefix = Paths.get("foo/bar/");
Path completePath = prefix.resolve("gus");
System.out.println(completePath);
}
}