递归结构包括两个部分:
1、定义递归头:即“什么时候不调用自身方法”。如果没有头,将陷入死循环,也就是递归的结束条件。
2、递归体:也就是什么时候需要调用自身方法。
应用:递归遍历目录结构
package 递归遍历目录结构;
import java.io.File;
import java.io.IOException;
public class TestFiles {
public static void main(String[] args) throws IOException {
File f = new File("d:/电影");
//查看项目的路径
System.out.println(System.getProperty("user.dir"));
//如果没有的话就在指定位置创建一个
// f.createNewFile();
printFile(f,0);
}
/**
* 打印文件信息
* @param file 文件名称
* @param level 层次数(实际就是第几次递归调用)
**/
static void printFile(File file,int level){
//1、输出层次数
for(int i = 0;i < level;i++){
System.out.print("-");
}
//2、输出文件名
System.out.println(file.getName());
//3、如果file是目录,则获取子文件列表,并对每个子文件进行相同的操作
if(file.isDirectory()){
File[] files = file.listFiles();
for(File file1:files){
//4、递归调用方法,记得要+1
printFile(file1,level+1);
}
}
}
}
输出结果: