java IO實(shí)現(xiàn)電腦搜索、刪除功能的實(shí)例
一.遞歸方法
1.遞歸就是自己調(diào)用本身的方法,前提是有方法。
2.遞歸使用
找出遞歸的規(guī)律
遞歸要有出口條件,也就是結(jié)束條件
3.注意事項(xiàng)
遞歸次數(shù)不能太多,否則會(huì)出現(xiàn)堆棧溢出現(xiàn)象
遞歸不能嵌套使用,否則出現(xiàn)死遞歸
二.IO介紹
1. i為Input輸入,O為Output輸出,API單獨(dú)把輸入和輸出流封裝成一個(gè)類,提供大量的方法供我們使用。
2. IO技術(shù)可以把數(shù)據(jù)寫入到持久化設(shè)備(包括硬盤、光盤、U盤等),集合、數(shù)組雖然可以存儲(chǔ)讀取,但是僅僅暫存在內(nèi)存中,當(dāng)重新啟動(dòng)程序就不存在了。
3. 相對(duì)內(nèi)存這個(gè)參照物而言,把硬盤的東西讀到內(nèi)存中,稱為輸入流。把內(nèi)存的數(shù)據(jù)寫入到硬盤上,稱為輸出流。
三.代碼實(shí)現(xiàn)電腦搜索的功能
1.搜索自定義后綴名的文件夾
package cn.jasonFile01;
import java.io.File;
/**
* @author Jason
* @2016年9月18日 下午9:12:35
*/
public class FindFiles04 {
// 成員變量的巧用
// 統(tǒng)計(jì)變量可以放在成員位置
static int countFile = 0;
public static void main(String[] args) {
// 封裝父類的file對(duì)象
File parent = new File("F:\\API");
// 定義要查找文件的后綴名
String suffix = ".pdf";
// 調(diào)用查找文件的方法
scanFiles(parent, suffix);
// 輸出滿足條件的文件個(gè)數(shù)
System.out.println("滿足條件的文件有" + countFile + "個(gè)");
}
/**
* 這是查找符合條件的文件
* 1. 獲取當(dāng)前目錄下的所有子文件及其子目錄
* 2. 遍歷數(shù)組判斷是否是文件
* 是:在滿足后綴名的情況下,直接輸出文件所在的絕對(duì)路徑,計(jì)數(shù)器加1
* 否:接著遞歸
* 注意:如果是文件(不是目錄)調(diào)用listFiles方法的話,那么返回的是null
*/
private static void scanFiles(File parent, String suffix) {
// 獲取當(dāng)前目錄下的所有子文件及其子目錄
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)計(jì)變量
static int countFolder = 0;
public static void main(String[] args) {
// 封裝父類的file對(duì)象
File parent = new File("F:\\a");
// 定義要查找文件的后綴名
String suffix = "1";
// 調(diào)用查找文件夾方法
scanFolder(parent, suffix);
// 輸出滿足條件的目錄個(gè)數(shù)
System.out.println("滿足條件的文件夾有" + countFolder + "個(gè)");
}
/**
* 這是查找滿足條件的文件夾個(gè)數(shù)的方法
* 1. 獲取當(dāng)前目錄下的所有子文件及其子目錄
* 2. 遍歷數(shù)組判斷是否為目錄
* 是:接著遞歸
* 否:不管它
* 3. 后綴名相同輸出絕對(duì)路徑
* 注意:如果是文件(不是目錄)調(diào)用listFiles方法的話,那么返回的是null
*/
private static void scanFolder(File parent, String suffix) {
// 獲取父目錄下的所有子目錄及子文件
File[] files = parent.listFiles();
if (files != null)
// 遍歷數(shù)組進(jìn)行判斷
for (File file : files) {
if (file.isDirectory())
scanFolder(file, suffix);
}
//免租條件的目錄輸出
if (parent.getName().endsWith(suffix)) {
System.out.println(parent.getAbsolutePath());
countFolder++;
}
}
}
四.代碼實(shí)現(xiàn)電腦的徹底刪除功能
注意:Java中刪除不走回收站,請(qǐng)慎重使用。
package cn.jasonFile01;
import java.io.File;
public class ClearAll {
public static void main(String[] args) {
// 封裝父目錄為file對(duì)象
File parent = new File("F:\\IO修改文件名");
//調(diào)用刪除方法
clearAll(parent);
}
/**
* 這是刪除父目錄下的所有子目錄和子文件的方法
* 1.獲取父目錄下的所有子文件及子目錄
* 2.變量數(shù)組并進(jìn)行判斷是否是文件
* 是:刪除
* 否:進(jìn)行遞歸
* 3.直到把目錄下的子文件到刪除完畢,那么在刪除所在的空文件
*/
private static void clearAll(File parent) {
// 獲取父目錄下的所有子文件及子目錄
File[] files = parent.listFiles();
//1.防止系統(tǒng)文件不能方位而出現(xiàn)空指針異常
//2.防止系統(tǒng)路徑不存在導(dǎo)致數(shù)組為null,發(fā)生空指針異常
if (files != null)
// 遍歷數(shù)組
for (File file : files) {
if (file.isFile())
file.delete();
else
clearAll(file);
}
// 刪除文件后在刪除空文件夾
parent.delete();
}
}
以上就是小編為大家?guī)淼膉ava IO實(shí)現(xiàn)電腦搜索、刪除功能的實(shí)例全部?jī)?nèi)容了,希望大家多多支持腳本之家~
- Java 編程之IO流資料詳細(xì)整理
- Java 對(duì)象序列化 NIO NIO2詳細(xì)介紹及解析
- 詳解java IO流之緩沖流的使用
- JAVA對(duì)list集合進(jìn)行排序Collections.sort()
- JavaWeb Session失效時(shí)間設(shè)置方法
- 如何解決Mybatis--java.lang.IllegalArgumentException: Result Maps collection already contains value for X
- Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解
- java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list錯(cuò)誤解決辦法
- Java IO學(xué)習(xí)之緩沖輸入流(BufferedInputStream)
相關(guān)文章
IDEA 啟動(dòng) Tomcat 項(xiàng)目輸出亂碼的解決方法
這篇文章主要介紹了IDEA 啟動(dòng) Tomcat 項(xiàng)目輸出亂碼的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java基于Swing實(shí)現(xiàn)的打獵射擊游戲代碼
這篇文章主要介紹了Java基于Swing實(shí)現(xiàn)的打獵射擊游戲代碼,包含完整的游戲事件處理與邏輯流程控制,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11
Java程序生成exe可執(zhí)行文件詳細(xì)教程(圖文說明)
這篇文章主要介紹了Java程序生成exe可執(zhí)行文件詳細(xì)教程,有需要的朋友可以參考一下2013-12-12
java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存分析
這篇文章主要介紹了java應(yīng)用開發(fā)之JVM運(yùn)行時(shí)內(nèi)存,文中附含圖文示例內(nèi)容分析非常簡(jiǎn)要,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
Spring在@ConditionalOnProperty注解使用詳解
這篇文章主要介紹了Spring在@ConditionalOnProperty注解使用詳解,@ConditionalOnProperty注解是Spring Boot的條件注解,主要用法是根據(jù)配置文件中的屬性來控制某個(gè)配置類是否生效,或者控制某個(gè)Bean是否被創(chuàng)建,需要的朋友可以參考下2023-11-11
Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)
這篇文章主要介紹了Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08

