在NIO.2中的目录 dedecms.com
在为Java version1.0创建的Java.io.file API中,list 和 list file方法通过文件和目录名的一个数组返回。这些方法不适合大的目录,所以在网络上列出大规模的目录,list方法会需要很长时间。如果一个应用程序为多个客户服务或是获取目录列表,虚拟机 (VM)会耗尽内存。 织梦内容管理系统
在Java NIO.2中,目录函数返回一个迭代器(iterator)允许大型目录。目录stream类是在目录中迭代实体的一个对象。它返回在目录中代表每个文件的实体流。当动作完成时,开发者关闭这个流。该流的close方法必须被调用来关闭这个流。
除此之外,目录中的平台代表的文件名被保护,所以文件可以再次被访问——文件名作为字节序列被储存的地方是很重要的。处理开放目录的进一步优势是执行与目录相关的操作是可能的,一些对安全性的应用程序很重要的事情。当目录迭代的时候,实体也被过滤。API有对通过名字过滤的glob 和 regex类型或是开发任意过滤器的内置支持。 织梦好,好织梦
FileVisitor类接口——开发递归操作
“假设你有一个文件树而且你想要在所有文件上做些事情或是一个子集的文件树。在文件类中我们有一个实用的方法叫做walkFileTree。”Bateman说。 内容来自dedecms
“如果你提供一个起点和一个文件访问器,它将在文件访问器上调用各种各样的方法,因为它在文件树中可以通过文件。我们希望人们使用这个,如果他们正在开发一个递归副本,递归移动,递归删除或是设置权限或在每个文件上执行其他操作的一些递归操作。” 织梦好,好织梦
当运行文件树的时候,开发者会遇到错误。部分文件树不能访问,或是本来存在的文件连接不存在或没有安装。“在NIO.2中,这些问题都包括在内.” Bateman说。“我们有一个visit file,failed方法和预访问directory failed方法,在目录不能为文件打开的时候或是文件不能被访问的时候通知你。各种重获行为可以使用。每个方法返回一个文件访问的结果。” copyright dedecms
复制地址和好友共享








