A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题:什么是递归?
在方法中自己调用了自己。
问题:递归使用的注意事项?
1.        递归一定要有结束条件
2.        递归次数不能过多,容易引起内存溢出。
  1. package cn.itcast.test;

  2. import java.io.File;

  3. public class Test3 {

  4.         /**
  5.          * @param args
  6.          *            递归删除带内容的目录案例 delete()方法,它如果删除目录,目录下有子,删除不了。
  7.          *            分析:得到目录下的所有的子,如果子是文件
  8.          *            ,直接删除就可以,如果子不是文件,是目录,那么递归调用,删除目录下的子,最后要将目录也删除。
  9.          */
  10.         public static void main(String[] args) {
  11.                 //声明一个目录       
  12.                 File file=new File("F:\\day20-IO输入输出");               
  13.                 deleteAll(file);
  14.                
  15.         }
  16.                 public static void deleteAll(File file)
  17.                 {
  18.                
  19.                         //如果目录为空或者目录下为文件 直接调用delete方法删除
  20.                                 if(file.list().length==0||file.isFile())
  21.                                 {
  22.                                         file.delete();
  23.                                 }       
  24.                                 else        //如果目录不为空,为子目录或者文件
  25.                                 {
  26.                                         // 非空目录不能直接删除      获取待删除目录下的所有File对象
  27.                                         File[] files=file.listFiles();
  28.                                         //遍历目录中的所有文件
  29.                                         for(File f:files)
  30.                                         {
  31.                                                 deleteAll(f);        //自己调用自己的方法递归删除里面的所有文件及目录
  32.                                                 file.delete();        //删除本目录
  33.                                         }                                       
  34.                                 }
  35.                                                        
  36.                         }
  37. }

复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马