DBMNG数据库管理与应用

才能是来自独创性。独创性是思维、观察、理解和判断的一种独特的方式。
当前位置:首页 > MySQL > 常见问题

为路径和文件系统操作使用NIO(2)

20.4.3 为路径和文件系统操作使用NIO(2)

其中,dirPath封装了链接到目录的路径。该方法返回一个DirectoryStream<Path>对象,可以使用该对象获取目录的内容。如果发生I/O错误,该方法会抛出IOException异常,并且如果指定的路径不是目录,那么还会抛出NotDirectoryException异常(NotDirectoryException是IOException的子类)。如果不允许访问目录,还可能抛出SecurityException异常。

DirectoryStream<Path>实现了AutoCloseable接口,所以可以使用带资源的try语句进行管理。另外还实现了Iterable<Path>,这意味着可以通过迭代DirectoryStream对象来获取目录的内容。进行迭代时,每个目录实体都是由一个Path实例表示的。迭代DirectoryStream对象的一种简单方式是使用for-each风格的for循环。但是,DirectoryStream<Path>实现的迭代器,针对每个实例只能获取一次,理解这一点很重要。因此,iterator()方法只能调用一次,并且for-each循环只能执行一次。

下面的程序显示了MyDir目录的内容:

 
 

下面是该程序的样本输出:
 
可以使用两种方式过滤目录的内容。最简单的方式是使用下面这个版本的newDirectoryStream()方法:
  1. static DirectoryStream<Path> newDirectoryStream(Path dirPath, String wildcard)   
  2. throws IOException 

在这个版本中,只能获取与通配符文件名相匹配的方法。其中,通配符文件名是由wildcard指定的。对于wildcard,可以指定完整的文件名,也可以指定glob。glob是定义通用模式的字符串,通用模式使用熟悉的“*”和“?”通配符来匹配一个或多个文件。通配符“*”匹配0个或多个任意字符,通配符“?”匹配任意一个字符。在glob中还能识别表20-11中的通配符。

表20-11 在glob中还能识别的通配符


 
本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号