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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVA-基础(查找文件夹内文件)

發布時間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA-基础(查找文件夹内文件) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA-基礎(查找文件夾內文件)

1.目的?

查找指定文件夾內的文件。以查詢.txt結尾的文件為例。

2.分析?

目錄搜索,無法判斷多少級目錄,所以使用遞歸,遍歷所有目錄。

遍歷目錄時,獲取的子文件,通過文件名稱,判斷是否符合條件。

3.代碼實現?

1 public class DiGuiDemo4 { 2 public static void main(String[] args) { 3 File dir = new File("D:\\aaa"); 4 printDir2(dir); 5 } 6 7 public static void printDir2(File dir) { 8 // 匿名內部類方式,創建過濾器子類對象 9 File[] files = dir.listFiles(new FileFilter() { 10 @Override 11 public boolean accept(File pathname) { 12 return pathname.getName().endsWith(".txt")||pathname.isDirectory(); 13 } 14 }); 15 // 循環打印 16 for (File file : files) { 17 if (file.isFile()) { 18 System.out.println("文件名:" + file.getAbsolutePath()); 19 } else { 20 printDir2(file); 21 } 22 } 23 } 24 }

4.解釋?

File dir = new File("D:\\aaa");創建一個文件對象。
listFiles方法作用是遍歷File dir文件夾內的文件和文件夾。所以返回的值為數組。
FileFilter是一個接口,是File的過濾器。 該接口的對象可以傳遞給File類的listFiles(FileFilter) 作為參數, 接口中只有一個方法。
boolean accept(File pathname) :測試pathname是否應該包含在當前File目錄中,符合則返回true。
接口作為參數,需要傳遞子類對象,重寫其中方法。我們選擇匿名內部類方式,比較簡單。
accept方法,參數為File,表示當前File下所有的子文件和子目錄。保留住則返回true,過濾掉則返回false。保留規則:要么是.txt文件。要么是目錄,用于繼續遍歷。
通過過濾器的作用,listFiles(FileFilter)返回的數組元素中,子文件對象都是符合條件的,可以直接打印。
pathname.getName().endsWith(".txt")||pathname.isDirectory()。判斷名字后綴是否是.txt的或者是不是文件夾。



?

?

轉載于:https://www.cnblogs.com/fan123yh/p/11017254.html

總結

以上是生活随笔為你收集整理的JAVA-基础(查找文件夹内文件)的全部內容,希望文章能夠幫你解決所遇到的問題。

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