Java NIO Path和File

Path简介

Java Path接口是Java NIO更新的一部分,同Java NIO一起包含在Java 6和Java 7中。Java Path接口是在Java 7中添加到NIO的。Path接口位于java.nio.file包中。所以Path接口的完全限定类名为java.nio.file.Path。

Java Path实例表示文件系统中的路径。一个路径可以指向一个文件或一个目录。路径可以是绝对路径,也可以是相对路径。绝对路径包含从文件系统的根目录到它指向的文件或目录的完整路径。相对路径包含相对于其他路径的文件或目录的路径。

在许多方面,java.nio.file.Path接口类似于java.io.File类,但是有一些差别。不过,在许多情况下,可以使用Path接口来替换File类的使用。

创建Path实例

Path path = Paths.get("d:\\qrxqrx\\01.txt");

创建绝对路径

Path path = Paths.get("d:\\qrxqrx\\01.txt");

创建相对路径

Path path = Paths.get(basePath,relativePath);

Path.normalize()

Path接口的normalize()方法可以使路径标准化。标准化意味着它将移除所有在路径字符串的中间.和…代码,并解析路径字符串所引用的路径。

Path path = Paths.get("d:\\qrxqrx\\..\\01.txt");
Path newPath = path.normalize();

Files简介

Java NIO Files类(java.nio.file.Files)提供了几种操作文件系统中文件的方法。

Files.createDirectory()

Files.createDirectory()方法,用于根据Path实例创建一个新目录。

Path path = Paths.get("d:\\qrxqrx");
Path newDir = Files.createDirectory(path);

Files.copy()

(1)Files.copy()方法从一个路径拷贝一个文件到另一个目录。

Path sourcePath = Paths.get("d:\\qrxqrx\\01.txt");
Path desPath = Paths.get("d:\\qrxqrx\\02.txt");
Files.copy(sourcePath,desPath);

(2)覆盖已存在的文件
Files.copy()方法的第三个参数。

Files.copy(sourcePath,desPath,StandardCopyOption.REPLACE_EXISTING);

Files.move()

Files.move()用于将文件从一个路径移动到另一个路径。移动文件与重命名文件相同,但是移动文件既可以移动到不同的目录,也可以在相同的操作中更改它的名称。

Path sourcePath = Paths.get("d:\\qrxqrx\\01.txt");
Path desPath = Paths.get("d:\\qrxqrx\\02.txt");
Files.move(sourcePath,desPath,StandardCopyOption.REPLACE_EXISTING);

第三个参数告诉Files.move()方法来覆盖目标路径上的任何现有文件。

Files.delete()

Files.delete()方法可以删除一个文件或者目录。

Path path = Paths.get("d:\\qrxqrx\\02.txt");
Files.delete(path);

Files.walkFileTree()

(1)Files.walkFileTree()方法包含递归遍历目录树功能,将path实例和FileVisitor作为参数。Path实例指向要遍历的目录,FileVisitor在遍历期间被调用。
(2)FileVisitor是一个接口,必须自己实现FileVisitor接口,并将实现的实例传递给walkFileTree()方法。在目录遍历过程中,您的FileVisitor实现的每个方法都将被调用。如果不需要实现所有这些方法,那么可以扩展SimpleFileVisitor类,它包含FileVisitor接口中所有方法的默认实现。
(3)FileVisitorj接口的方法中,每个都返回一个FileVisitResult枚举实例。
FileVisitResult包含以下四个选项:

  • CONTINUE
  • TERMINATE
  • SKIP_SIBLING 跳过同级
  • SKIP_SUBTREE 跳过子级
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值