DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > MySQL > 常见问题

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

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

在第19章的开头分析了java.io包中的File类。在那儿解释过,File类处理文件系统以及与文件关联的各种属性,例如文件是否是只读的、隐藏的等等。还可以使用File类获取与文件路径相关的信息。随着JDK 7的出现,NIO.2定义的接口和类为执行这些功能提供了更好的方式。优点包括支持符号链接、能更好地支持目录树遍历以及改进的元数据处理等等。下面将显示这两种通用文件系统操作的一些例子:获取与路径和文件相关的信息以及获取目录的内容。

请记住:

如果希望将使用java.io.file的旧代码更新为使用Path接口,可以使用toPath()方法从File实例获取Path实例。toPath()方法是由JDK 7为File类新增的。

1. 获取与路径和文件相关的信息

可以使用Path定义的方法获取与路径相关的信息。有些与Path对象描述的文件相关的信息,可以使用Files类定义的方法来获取。在此使用的由Path接口定义的方法有getName()、getParent()和toAbsolutePath()。File类提供的那些方法是isExecutable()、isHidden()、isReadable()、isWritable()和exists()。如前所示,在表20-5和表20-6中对这些方法进行了总结。

警告:

使用isExecutable()、isHidden()、isReadable()、isWritable()和exists()这类方法时必须小心,因为在调用这些方法之后,文件系统的状态可能会改变。在这种情况下,程序可能会发生故障。这类情况可能暗示存在安全性问题。

其他文件属性可以通过调用Files.readAttributes()方法,请求文件属性列表来进行获取。在下面的程序中,调用这个方法获取与文件关联的BasicFileAttributes,但是也可以将这种通用方式应用到其他类型的文件属性。

下面的程序演示了Path接口和Files类定义的一些方法,以及BasicFileAttributes提供的一些方法。这个程序假定文件test.txt位于examples目录中,examples目录必须是当前目录的子目录。

 
 

如果从MyDir目录执行这个程序,将会看到与下面类似的输出。MyDir含有子目录examples,并且examples目录包含test.txt文件(当然,文件的大小和时间可能不同)。

 

如果使用的计算机支持FAT文件系统(比如DOS文件系统),那么您可能希望尝试使用DosFileAttributes定义的方法。如果使用的是与POSIX兼容的系统,那么可以尝试使用 PosixFileAttributes。

2. 列出目录的内容

如果路径描述的是目录,那么可以使用Files类定义的静态方法来读取目录的内容。为此,首先调用newDirectoryStream()方法以获取目录流,传递描述目录的Path对象作为参数。newDirectoryStream()方法的其中一种形式如下所示:

  1. static DirectoryStream<Path> newDirectoryStream(Path dirPath)   
  2. throws IOException 

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

豫公网安备 41010502002439号