
上QQ阅读APP看书,第一时间看更新
2.5.8 ZIP文件系统
Paths类会在默认文件系统中查找路径,即在用户本地磁盘中的文件。你也可以有别的文件系统,其中最有用的之一是ZIP文件系统。如果zipname是某个ZIP文件的名字,那么下面的调用

将建立一个文件系统,它包含ZIP文档中的所有文件。如果知道文件名,那么从ZIP文档中复制出这个文件就会变得很容易:

其中,fs.getPath对于任意文件系统来说,都与Paths.get类似。
要列出ZIP文档中的所有文件,可以遍历文件树:

这比2.3.3节中描述的API要好用,它使用的是多个专门处理ZIP文档的新类。
java.nio.file.FileSystems7
·static FileSystem newFileSystem(Path path,ClassLoader loader)
对所安装的文件系统提供者进行迭代,并且如果loader不为null,那么就还迭代给定的类加载器能够加载的文件系统,返回由第一个可以接受给定路径的文件系统提供者创建的文件系统。默认情况下,对于ZIP文件系统是有一个提供者的,它接受名字以.zip或.jar结尾的文件。
java.nio.file.FileSystem7
·static Path getPath(String first,String...more)
将给定的字符串连接起来创建一个路径。