遞歸調用
遞歸調用分爲兩種:
直接調用、間接調用
注意:遞歸調用要有一定的條件限制,保證遞歸可以停下來。防止出現棧內存溢出。 構造方法禁止遞歸。
遞歸打印多級目錄
定義一個方法,參數傳遞File類型的目錄,方法對目錄進行遍歷 (遍歷包括文件夾及其子文件)
System.out.println(dir);//打印被遍歷的目錄名稱
File[] files = dir.listFiles();
for(File f : files){
//對遍歷得到的File對象f進行判斷,判斷是否爲文件夾
if(f.isDirectory()){
//f是一個文件夾,繼續遍歷這個文件夾
//getAllFile方法可遞歸調用文件夾,(自己調用自己)
getAllFile(f);
}else{
//f是一個文件,直接打印即可
System.out.println(f);
}
文件搜索
System.out.println(dir);//打印被遍歷的目錄名稱
File[] files = dir.listFiles();
for(File f : files){
//對遍歷得到的File對象f進行判斷,判斷是否爲文件夾
if(f.isDirectory()){
//f是一個文件夾,繼續遍歷這個文件夾
//getAllFile方法可遞歸調用文件夾,(自己調用自己)
getAllFile(f);
}else{
//f是一個文件,直接打印即可
//System.out.println(f);
//要求只要.java結尾的文件
//1.把File對象f,轉換爲字符串對象的三種方法
//String name = f.getName();//abc.java
//String path = f.getPath();//c:\\abc\\abc.java
String s = f.toString();
//2.把字符串轉換爲小寫
//s = s.toLowerCase();
//3.調用String類中方法endsWith判斷字符串是否以.java結尾
//bollean b = s.endsWith(".java");
//4.如果是以.java結尾的文件,則輸出
//if(b){
//System.out.println(f);
// }
//**重點鏈式編程**
if(f.getName().toLowerCase().endsWith(".java")){
System.out.println(f);
}
}