日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java基础----递归实现文件搜索

發布時間:2024/2/28 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础----递归实现文件搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.henu.io;import java.io.File; /**??????????????????????????????????????????*不使用文件過濾器,則看文件的絕對路徑,如果這個路徑中沒有.java文件,則搜索不出**/ public class Demo05_遞歸實現文件搜索 {public static void main(String[] args) {File file = new File("F:\\workspace\\第一階段\\days01\\Days07\\src\\com\\henu\\io"); // printDir(file);printDir(file, ".java");}//搜索F:\workspace\第一階段\days01\Days07 目錄中的.java 文件。public static void printDir(File f) {File[] files = f.listFiles();for (File file : files) {boolean b = file.isFile();if (b) {//endsWith后綴,if (file.getName().endsWith(".xml")) {//public String getName()返回由此抽象路徑名表示的文件或目錄的名稱。System.out.println(file);}else {printDir(file);}}}}public static void printDir(File f, String suffix) {File[] files = f.listFiles();for (File file : files) {boolean b = file.isFile();if (b) {//endsWith后綴,if (file.getName().endsWith(suffix)) {//public String getName()返回由此抽象路徑名表示的文件或目錄的名稱。System.out.println(file);}else {printDir(file,suffix);}}}}} package com.henu.io;import java.io.File; import java.io.FileFilter;/** java.io.FileFilter是一個接口,是File的過濾器。 該接口的對象可以傳遞給File類的listFiles(FileFilter) 作為參數, 接口中只有一個方法。boolean accept(File pathname) :測試pathname是否應該包含在當前File目錄中,符合則返回true。分析:1.接口作為參數,需要傳遞子類對象,重寫其中方法。我們選擇匿名內部類方式,比較簡單。2.accept方法,參數為File,表示當前File下所有的子文件和子目錄。保留住則返回true,過濾掉則返回false。保留規則:1.要么是.java文件。2.要么是目錄,用于繼續遍歷。3.通過過濾器的作用,listFiles(FileFilter)返回的數組元素中,子文件對象都是符合條件的,可以直接打印。*/ public class Demo06_FileFilter文件過濾器優化 {public static void main(String[] args) {File file = new File("F:\\workspace\\第一階段\\days01\\Days07\\src\\com");printDir(file,".java");}public static void printDir(File f, String string) {//1.列出該file下的所有文件和目錄File[] listFiles = f.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {//當file名是以指定后綴結尾的或者file是個目錄,則返回true//true當且僅當該抽象路徑名表示的文件存在且為目錄時; false否則 boolean b = f.getName().endsWith(string) || f.isDirectory();return b;}});for (File file : listFiles) {System.out.println(file);}//2.循環遍歷file數組for (File file : listFiles) {boolean b = file.isFile();if (b) {System.out.println(file);}else {printDir(file, string);}}}} package com.henu.io;import java.io.File;public class Demo07_FileFilter使用Lambda優化 {public static void main(String[] args) {File file = new File("F:\\workspace\\第一階段\\days01\\Days07\\src\\com\\henu\\io");printDir(file,".java");}public static void printDir(File f,String suffix) {//1.列出該file下的所有文件和目錄 FileFilter是只有一個方法的接口,因此可以用lambda表達式簡寫。File[] files = f.listFiles((file) -> {return file.getName().endsWith(suffix)||file.isDirectory();});for (File file2 : files) {boolean b = file2.isFile();if (b) {System.out.println(file2);}else {printDir(f, suffix);}}} }

?

?

?

?

總結

以上是生活随笔為你收集整理的java基础----递归实现文件搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。