问题:什么是递归?
在方法中自己调用了自己。
问题:递归使用的注意事项?
1. 递归一定要有结束条件
2. 递归次数不能过多,容易引起内存溢出。
- package cn.itcast.test;
- import java.io.File;
- public class Test3 {
- /**
- * @param args
- * 递归删除带内容的目录案例 delete()方法,它如果删除目录,目录下有子,删除不了。
- * 分析:得到目录下的所有的子,如果子是文件
- * ,直接删除就可以,如果子不是文件,是目录,那么递归调用,删除目录下的子,最后要将目录也删除。
- */
- public static void main(String[] args) {
- //声明一个目录
- File file=new File("F:\\day20-IO输入输出");
- deleteAll(file);
-
- }
- public static void deleteAll(File file)
- {
-
- //如果目录为空或者目录下为文件 直接调用delete方法删除
- if(file.list().length==0||file.isFile())
- {
- file.delete();
- }
- else //如果目录不为空,为子目录或者文件
- {
- // 非空目录不能直接删除 获取待删除目录下的所有File对象
- File[] files=file.listFiles();
- //遍历目录中的所有文件
- for(File f:files)
- {
- deleteAll(f); //自己调用自己的方法递归删除里面的所有文件及目录
- file.delete(); //删除本目录
- }
- }
-
- }
- }
复制代码 |
|