java文件树_Java 文件树.pdf

Java 文件树

Java ⽂件树

Java IO教程 - Java⽂件树

FileVisitor API可以递归地处理⽂件树中的所有⽂件和⽬录。

当我们要对⽂件树中的所有或某些⽂件或⽬录执⾏某些操作时 FileVisitor API⾮常有

⽤。

SimpleFileVisitor类是FileVisitor接⼜的基本实现。

当访问⽂件/ ⽬录时 SimpleFileVisitor类不执⾏任何操作。我们可以从

SimpleFileVisitor类继承我们的⽂件访问类 并且只覆盖适合我们需要的⽅法。

FileVisitor接⼜的⽅法:

ID 含义

1 FileVisitResult preVisitDirectory (T dir BasicFileAttributes attrs ) 在访问⽬录中的

条⽬之前调⽤⼀次。

FileVisitResult postVisitDirectory (T dir IOE ception e c ) 已访问⽬录中的后调

2 ⽤项。如果在⽬录的迭代期间抛出了任何异常 则将异常对象作为第⼆个参数传

递给此⽅法。如果此⽅法的第⼆个参数为null 则在⽬录迭代期间没有异常。

3 FileVisitResult visitFile (T⽂件 BasicFileAttributes attrs ) 当访问⽬录中的⽂件时

调⽤。

4 FileVisitResult visitFileFailed (T⽂件 IOE ception e c ) 当由于任何原因⽽⽆法

访问⽂件或⽬录时调⽤。

下表列出了FileVisitResult的枚举常量及其说明

枚举常量 描述

CONTINUE 继续处理

SKIP_SIBLINGS 继续处理⽽不访问⽂件或⽬录的兄弟节点。

SKIP_SUBTREE 继续处理 ⽽不访问⽬录中的条⽬。

TERMINATE 终⽌⽂件访问过程。

我们不需要在我们的⽂件访问类的所有四个⽅法中编写逻辑。要复制⽬录 请使⽤

preVisitDirectory()⽅法来创建⼀个新⽬录和visitFile()⽅法来复制⽂件。

以下代码显⽰如何打印⽬录的⼦⽬录和⽂件的名称。

import static java.nio.file.FileVisitResult.CONTINUE;

import java.io.IOException;

import java.nio.file.FileVisitResult;

import java.nio.file.FileVisitor;

import java.nio.file.Files;

import java.nio.file.Pat ;

import java.nio.file.Pat s;

import java.nio.file.SimpleFileVisitor;

import java.nio.file.attribute.BasicFileAttributes;

public class Main {

public static void main(String[] args) {

Pat startDir = Pat s.get("");

FileVisitor visitor = getFileVisitor();

try {

Files.walkFileTree(startDir, visitor);

} catc (IOException e) {

e.printStackTrace();

}

}

public static FileVisitor getFileVisitor() {

class DirVisitor extends SimpleFileVisitor {

@Override

public FileVisitResult preVisitDirectory(Pat dir,

BasicFileAttributes attrs) {

System.out.format("%s [Directory]%n", dir);

r

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值