一.遞歸方法
1.遞歸就是自己調(diào)用本身的方法,前提是有方法。
2.遞歸使用
找出遞歸的規(guī)律
遞歸要有出口條件,也就是結(jié)束條件
3.注意事項
遞歸次數(shù)不能太多,否則會出現(xiàn)堆棧溢出現(xiàn)象
遞歸不能嵌套使用,否則出現(xiàn)死遞歸
二.IO介紹
1. i為Input輸入,O為Output輸出,API單獨把輸入和輸出流封裝成一個類,提供大量的方法供我們使用。
2. IO技術(shù)可以把數(shù)據(jù)寫入到持久化設(shè)備(包括硬盤、光盤、U盤等),集合、數(shù)組雖然可以存儲讀取,但是僅僅暫存在內(nèi)存中,當重新啟動程序就不存在了。
3. 相對內(nèi)存這個參照物而言,把硬盤的東西讀到內(nèi)存中,稱為輸入流。把內(nèi)存的數(shù)據(jù)寫入到硬盤上,稱為輸出流。
三.代碼實現(xiàn)電腦搜索的功能
1.搜索自定義后綴名的文件夾
package cn.jasonFile01;  import java.io.File;  /**  * @author Jason  * @2016年9月18日 下午9:12:35  */ public class FindFiles04 {  // 成員變量的巧用  // 統(tǒng)計變量可以放在成員位置  static int countFile = 0;   public static void main(String[] args) {  // 封裝父類的file對象  File parent = new File("F://API");  // 定義要查找文件的后綴名  String suffix = ".pdf";  // 調(diào)用查找文件的方法  scanFiles(parent, suffix);  // 輸出滿足條件的文件個數(shù)  System.out.println("滿足條件的文件有" + countFile + "個");  }   /**  * 這是查找符合條件的文件  * 1. 獲取當前目錄下的所有子文件及其子目錄  * 2. 遍歷數(shù)組判斷是否是文件  *  是:在滿足后綴名的情況下,直接輸出文件所在的絕對路徑,計數(shù)器加1  *  否:接著遞歸  * 注意:如果是文件(不是目錄)調(diào)用listFiles方法的話,那么返回的是null  */  private static void scanFiles(File parent, String suffix) {  // 獲取當前目錄下的所有子文件及其子目錄  File[] files = parent.listFiles();  // 防止系統(tǒng)中沒有訪問權(quán)的文件返回null值  if (files != null)   for (File file : files) {   if (file.isFile() && file.getName().endsWith(suffix)) {    System.out.println(file.getAbsolutePath());    countFile++;   } else    scanFiles(file, suffix);   }  } } 2.搜索自定義后綴名的文件夾
package cn.jasonFile01;  import java.io.File;  /**  * @author Jason  * @2016年9月18日 下午9:12:20  */  public class FindFolder {  // 定義統(tǒng)計變量  static int countFolder = 0;   public static void main(String[] args) {  // 封裝父類的file對象  File parent = new File("F://a");  // 定義要查找文件的后綴名  String suffix = "1";  // 調(diào)用查找文件夾方法  scanFolder(parent, suffix);  // 輸出滿足條件的目錄個數(shù)  System.out.println("滿足條件的文件夾有" + countFolder + "個");  }   /**  * 這是查找滿足條件的文件夾個數(shù)的方法  * 1. 獲取當前目錄下的所有子文件及其子目錄  * 2. 遍歷數(shù)組判斷是否為目錄  *  是:接著遞歸  *  否:不管它  * 3. 后綴名相同輸出絕對路徑  * 注意:如果是文件(不是目錄)調(diào)用listFiles方法的話,那么返回的是null  */  private static void scanFolder(File parent, String suffix) {  // 獲取父目錄下的所有子目錄及子文件  File[] files = parent.listFiles();  if (files != null)   // 遍歷數(shù)組進行判斷   for (File file : files) {   if (file.isDirectory())    scanFolder(file, suffix);   }    //免租條件的目錄輸出  if (parent.getName().endsWith(suffix)) {   System.out.println(parent.getAbsolutePath());   countFolder++;  }   } } 四.代碼實現(xiàn)電腦的徹底刪除功能
注意:Java中刪除不走回收站,請慎重使用。
package cn.jasonFile01;  import java.io.File;  public class ClearAll {  public static void main(String[] args) {  // 封裝父目錄為file對象  File parent = new File("F://IO修改文件名");  //調(diào)用刪除方法  clearAll(parent);   }   /**  * 這是刪除父目錄下的所有子目錄和子文件的方法  * 1.獲取父目錄下的所有子文件及子目錄  * 2.變量數(shù)組并進行判斷是否是文件  * 是:刪除  * 否:進行遞歸  * 3.直到把目錄下的子文件到刪除完畢,那么在刪除所在的空文件  */  private static void clearAll(File parent) {  // 獲取父目錄下的所有子文件及子目錄  File[] files = parent.listFiles();  //1.防止系統(tǒng)文件不能方位而出現(xiàn)空指針異常  //2.防止系統(tǒng)路徑不存在導致數(shù)組為null,發(fā)生空指針異常  if (files != null)   // 遍歷數(shù)組   for (File file : files) {   if (file.isFile())    file.delete();   else    clearAll(file);   }  // 刪除文件后在刪除空文件夾  parent.delete();  } } 以上就是小編為大家?guī)淼膉ava IO實現(xiàn)電腦搜索、刪除功能的實例全部內(nèi)容了,希望大家多多支持武林網(wǎng)~
新聞熱點
疑難解答