Java文件操作(1) 1.File類 Java中是通過File類來存取文件和路徑的。沒錯,這是一個非常容易混淆的名字,你可能認為它僅僅能夠處理文件,實際上它既可以代表了一個特定的文件,又可以代表某個文件夾內的文件名列表。如果它是文件,你可以通過length()方法獲取它的大小、通過lastModified()方法最后修改時間,等等;如果它代表文件名列表,則可以用list()得到表示文件名列表的字符串數組,或者用listFiles()方法得到表示子文件列表的File數組。總之,在Java中文件夾和文件已經被統一成一個抽象的概念,只要了解它的原理,使用起來將會感到非常方便。 2.文件過濾 我們說過,File類的listFiles()方法可以得到表示子文件列表的File數組,如果僅僅想要得到特定的子文件而過濾掉其他的文件,則可以給listFiles()方法加上參數??一個過濾器。 public interface FilenameFilter { 我們要得到某個File類的所有子文件夾,過濾器FolderFilter類可以這么寫: class FolderFilter implements FilenameFilter { 你看,FolderFilter類通過implements表示對FilenameFilter接口的支持,然后實現了這個接口的accept方法。具體地,在accept方法中,通過傳入的dir參數和name參數新建一個File實例,然后通過調用isDirectory()方法判斷這個實例是否是文件夾,是則返回True,否則返回False。 注意到這個方法必須和FilenameFilter接口里面聲明的一模一樣。正因為如此,每次手動輸入接口聲明既麻煩又容易出錯。還是讓Eclipse干體力活吧!打開Eclipse,新建一個類,名字為FolderFilter,按下Interfaces文本列表右邊的Add按鈕,在彈出的對話框中輸入FilenameFilter即可。實際上,Eclipse會根據你的輸入進行篩選,非常聰明(見圖1)。
假設path是一個File類的實例,我們便可以通過File[] subFolders = path.listFiles(new FolderFilter())得到path的子文件夾列表了。 這就是接口的使用。加上前兩次我們講解的Java語言中關于封裝、繼承和多態的知識,Java面向對象編程就基本講完了。 3.過濾器原理 或許你會覺得過濾文件夾還要手動編寫一個類,實在是太麻煩了。實則不然。 |
溫馨提示:喜歡本站的話,請收藏一下本站!