-
- 检测文件或目次
- 文件存在
- 文件不存在
- 文件状况未知,无法验证
- 检测文件的可接见性
-
检测两个路径是否定位了同样的文件
在文件体系中,我们有时须要断定2个路径是否指定了同样的文件,我们可以应用isSameFile(Path path1,Path path2)办法来进行断定。:
-
删除文件或目次
须要删除一个文件或目次时,新NIO的Files供给了2个办法来完成这个目标
- 应用(Path path),若是删除的文件不存在或删除的目次中包含文件都邑抛出NoSuchFileException或DirectoryNotEmptyException。例如:
try {
Files.(path);
} catch (NoSuchFileException x) {
System.err.format(%s: no such + file or directory%n, path);
} catch (DirectoryNotEmptyException x) {
System.err.format(%s not empty%n, path);
} catch (IOException x) {
// File permission problems are caught here.
System.err.println(x);
}
-
拷贝文件或目次
文件类供给了copy(Path path1,Path path2,CopyOption[] option)来实现文件或目次的拷贝,当目标文件存在时是否抛出异常要按照CopyOption列举值来断定
其列举值的定义如下:
REPLACE_EXISTING:该选项默示,即使目标文件存在也履行拷贝,若是要拷贝的是符号链接(Symbolic link)链接本身被拷贝,而链接的目标不会被拷贝,若是拷贝到一个非空目次,FileAlreadyExistsException异常被抛出
COPY_ATTRIBUTES:该选项默示拷贝源文件相干的所有属性到目标文件,目标文件是否具有源文件拷贝过来的属性取决于响应的体系或平台,然则最后批改时候老是可以正确拷贝,它是跨平台的。
NOFOLLOW_LINKS:该选项首要用于符号链接(Symbolic link),拷贝的是链接本身,而被是链接的目标。
此外,文件类还供给了用于文件与流之间的拷贝的办法:copy(InputStream in,Path path,CopyOption[] option)该办法用于拷贝输入流到文件,copy(Path path,OutputStream out)该办法用于拷贝文件到输出流
-
移动文件或目次
我们能应用Move(Path path1,Path path2,CopyOption[] option)办法来移动文件或目次,若是目标文件已经存在,是否抛出异常与传递进来的CopyOptin标记有关,空目次和包含文件的目次都可以用该办法来进行移动,只是
包含文件的目次移动后不再包含文件
文件NIO进修领会
添加时间:2013-6-17 点击量:Files类是java.nio.file包的一个首要进口点,这个类供给了一系列静态的办法来读、写和操控文件或目次,Files的办法工作在Path对象的实例上。
验证一个文件或目次是否存在可以应用exists(Path path,LinkOption[] option)和notExists(Path path,LinkOption[] option)。须要重视的是验证一个文件是否存在可能有三种成果
是以,我们不克不及认为!exists(Path path)与notExists(Path path)是相等的
我们可以应用isReadable(Path path)、isWritable(Path path)和isExcutable(Path path)来断定一个文件是否可读、可写和可履行。例如:
Path file = ...;
boolean isRegularutableFile = Files.isRegularFile(file) &
Files.isReadable(file) & Files.isutable(file);
2、应用IfExists(path)办法删除文件或目次,即使文件存在也被会抛出异常。
StandardCopyOption参数的含义如下:
REPLACE_EXISTING: 该选项默示目标文件若是存在持续进行移动并调换,若是移动的是符号链接(Symbolic link),链接会被调换到指向原目标。
ATOMIC_MOVE:该选项顾名思义,就是操纵要么正确完成,要么失败,不成能项目组完成。
import static java.nio.file.StandardCopyOption.;
…...
Files.move(source, target, REPLACE_EXISTING);
下一篇文章我们将进修元数据经管(manageing metadata)
真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》