递归遍历文件
public static void main(String[] args) {
File file = new File("G:/bigdata");
Print(file);
}
public static void Print(File file) {
if(file.isDirectory()) {
for(File file1 : file.listFiles()) {
Print(file1);
}
}else {
System.out.println(file.getAbsolutePath());
}
}
使用File类遍历
FileVisitor参数代表的是一个文件访问器,walkFileTree()方法会自动遍历
FileVisitResult postVisitDirectory(T dir, IOException exc) // 访问子目录之后会触发这个方法
FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) //访问子目录之前会触发这个方法
FileVisitResult visitFile(T file, BasicFileAttributes attrs) // 访问file文件时触发该方法
FileVisitResult visitFileFailed(T file, IOException exc) // 访问file文件失败时触发该方法
Files.walkFileTree(Paths.get("D:\\workspace"), new SimpleFileVisitor<Path>() {
//访问文件时触发该方法
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println("正在访问"+file+"文件");
// if(file.endsWith("MergeSort.java")) {
// System.out.println("--找到了文件--");
// return FileVisitResult.TERMINATE;
// }
return FileVisitResult.CONTINUE;
}
//开始访问目录时触发的方法
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
System.out.println("正在访问"+dir+"路径");
return FileVisitResult.CONTINUE;
}
});