File类遍历(文件夹)目录功能以及递归概念&分类&注意事项
File类遍历(文件夹)目录功能
File类遍历(文件夹)目录功能:
public String list():返回一个String数组,表示该File目录中的所有子文件或目录
public File[] listFile():返回一个File数组,表示该File目录中的所有的子文件或目录
注意:
list方法和listFiles方法遍历的是构造方法中给出的目录
如果构造方法中给出的目录的路径不存在,会抛出空指针异常
如果构造方法中给出路径不是一个目录,也会抛出空指针异常
public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录,遍历构造方法中给出的目录,会获取目录中的所有文件/文件名称,把获取到的多个名称存储到一个String类型的数组中
public static void main(String[] args) { File file = new File("E:\\mave\\idea"); String[] list = file.list(); for (String s : list) { System.out.println(s); } }
运行结果:

public File[] listFile():返回一个File数组,表示该File目录中的所有的子文件或目录
public static void main(String[] args) { File file1 = new File("E:\\mave\\idea"); File[] files = file1.listFiles(); for (File file2 : files) { System.out.println(file2); } }
运行结果:

递归概念&分类&注意事项
递归:指在当前方法内调用自己的这种现象。
递归的分类:
递归分为两种,直接递归和间接递归。
直接递归称为方法自身调用自己。
间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。·
注意事项:
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
构造方法,禁止递归。
递归的使用前提:
当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归
递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
public static void main(String[] args){ a(); } /** * 递归一定要有条件限定,保证递归能够停止下来,否则会发生柱内存溢出。 * Exception in thread "main" java.lang.StackOverflowError */ private static void a() { System.out.println("a方法"); a(); }
运行结果:

栈堆图
 
在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
public static void main(String[] args){ b(1); } /** * 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。 * Exception in thread "main" java.lang.StackOverflowError */ private static void b(int i) { System.out.println(i); if (i==20000){ return; } b(++i); }

构造方法,禁止递归。
编译报错:构造方法是创建对象使用的,一直递归会导致内存中有无数多个对象,直接编译报错

 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号