#Java學習之路——基礎階段二(第六篇)
我的學習階段是跟著CZBK黑馬的雙源課程,學習目標以及博客是為了審查自己的學習情況,畢竟看一遍,敲一遍,和自己歸納總結一遍有著很大的區別,在此期間我會參雜Java瘋狂講義(第四版)裏面的內容。
前言:此隨筆主要是Java基礎中的基礎,相信大家對這方面肯定有著自己的理解和認識,具體詳解可以參照萬能的baidu,有的我就一筆帶過,希望在我的學習之路上能夠有大牛進行指導,也有更多的小夥伴共勉。
1.File類
File類是文件名和目錄路徑名的抽象表示,主要適用於文件和目錄的創建、查找和刪除功能;
構造方法有三種
1.直接通過給定的路徑名字符串轉換為抽象路徑名來創建;
2.是通過父路徑和子路徑名字符串創建
3.通過父路徑的抽象路徑和子路徑名字符串創建
簡單來說第一種方法是直接通過String 類傳給File類對象創建,第二種是通過String創建目錄和文件組合在一起的,第三只是通過File抽象類創建一個父目錄路徑,再用String類創建子類文件名進行創建;
常用的方法:
·getAbsoultePath 獲取文件的絕對路徑
·getPath 將文件路徑轉換為字符串
·getName 獲取文件或者是目錄名
·length 獲取文件或目錄長度
絕對路徑和相對路徑的區別:
絕對路徑是以根目錄為開始的路徑;
相對路徑是以項目分目錄開始的路徑。
判斷方法:
·exists 是否存在文件或者文件夾
·isDirectory 是否為目錄
·isFile 是否是文件
創建功能方法:
·creatNewFile 創建新文件夾
·delete 刪除文件夾(目錄文件夾必須為空,否則不能刪除)
·mkdir 創建此File為目錄
·mkdirs 創建多級目錄
目錄的遍歷:
·list方法 先將文件和文件目錄存入到數組中,用for循環來進行遍歷,這裏是當前目錄下的遍歷,遍歷出當前目錄下的文件和文件夾名稱
·listFiles方法 先將文件和文件目錄存入到數組中,用for循環來進行遍歷,這裏遍歷出的是文件夾和文件對象,獲取對象後就可以獲取更多的信息加以遍歷(listFile遍歷的文件夾必須是真實存在的否則返回的值是null值)
2.遞歸
遞歸是指當前方法內調用自己的現象,分為直接遞歸和間接遞歸
註意:遞歸一定要有一定的次數和條件限定來控制能夠停下來,否則會持續遞歸和循環中的死循環一樣是非常嚴重的錯誤,造成棧內存溢出。
構造方法不能進行遞歸,構造方法是用來構造對象的,如果遞歸就會一直構造對象。
遞歸對於上文寫到的File類就可以很好的運用到,遍歷出所有文件。
用listFile方法獲取所有的目錄文件和文件對象,存入到數組中,然後對數組進行for循環遍歷判斷isFile,如果返回ture則遍歷出文件名,如果是 false 則將獲取的相對路徑 再次調用遍歷方法再一次獲取,這樣就可以層層遞歸獲取所有文件名稱。
對於文件夾目錄下的文件搜索,可以使用過濾器進行條件篩選後的過濾,像以什麽文件格式結尾可以用endwith方法進行判斷對遍歷出的文件進行判斷符合則輸出,不符合則繼續進行遍歷操作。
關於過濾器這裏要講的是FileFilter接口中的accpet方法,返回值是boolean類型,可以通過匿名內部類來實現使用accpet方法,減少實現接口的實現類操作,這裏要用到的方法還有getPath方法獲取文件的絕對路徑,和geName方法,還有判斷是否是isDIrectory方法進行結合搜索,完成對條件篩選的過濾。
#Java學習之路——基礎階段二(第六篇)