使用FileVistor遍历文件和目录

本文介绍了如何在Java中使用Files工具类和FileVisitor接口优雅地遍历文件及子目录。FileVisitor提供了preVisitDirectory、postVisitDirectory、visitFile和visitFileFailed四个方法,分别在访问子目录前后及访问文件成功或失败时被调用。在实际应用中,可以通过继承SimpleFileVisitor并重写所需方法来实现自定义的文件访问行为。
摘要由CSDN通过智能技术生成

使用FileVistor遍历文件和目录

  • 在以前的Java版本中,如果程序要遍历指定⽬录的所有⽂件和⼦⽬录,则只能使⽤递归进⾏遍历,

  • 但这种⽅法不仅复杂,⽽且灵活性也不⾼,有了Files⼯具类的帮助,现在可以使⽤更优雅的⽅式来遍历和⼦⽬录

  • FileVisitor参数代表的是一个文件访问器,walkFileTree()方法会自动遍历start路径下的所有文件和子目录,遍历文件和子目录都会触发FileVisitor中相应的方法

  • 访问⼦⽬录之前会触发这个⽅法

    FileVisitResult preVisitDirectory(T dir,BasicFileAttributes attrs)

  • 访问⼦⽬录之后会触发这个⽅法

    FileVisitResult postVisitDirectory(T dir,IOException exc)

  • 访问file⽂件时触发该⽅法

    FileVisitResult visitFile(T file,BasicFileAttributes attrs)

  • 访问file⽂件失败时触发该⽅法

    FileVisitResult visitFileFailed(T file,IOException exc)

返回FileVisitResult是⼀个枚举

  1. CONTINUE 代表继续访问的后续⾏为
  2. SKIP_SIBLINGS 代表继续访问的后续⾏为,但不访问该⽂件后⽬录的兄弟⽂件或⽬录
  3. SKIP_SUBTREE 代表继续访问的后续⾏为,但不访问该⽂件或⽬录的⼦⽬录树
  4. TERMINATE 代表终⽌访问的后续⾏为

实际开发中没有必要4个⽅法都要重写,可以通过FileVisitor的⼦类SimpleFileVisitor(适配器)来创建⾃⼰的⽂件访问器,选择性的重写⽅法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值