File類
java.io.File類
文件和目錄路徑名的抽象表示形式掖肋。java把電腦中的文件和文件夾(目錄)封裝為了一個File類,我們可以使用File類對文件和文件夾進(jìn)行操作
我們可以使用File類的方法:
1.創(chuàng)建一個文件/文件夾
2.刪除文件/文件夾
3.獲取文件/文件夾
4.判斷文件/文件夾是否存在
5.對文件夾進(jìn)行遍歷
6.獲取文件的大小
File類是一個與系統(tǒng)無關(guān)的類,任何的操作系統(tǒng)都可以使用這個類中的方法
重點:記住三個單詞
file:文件 directory:文件夾/目錄 path:路徑
File類的靜態(tài)成員變量:
- static String pathSeparator 與系統(tǒng)有關(guān)的路徑分隔符,為了方便嫡意,它被表示為一個字符串。
- static char pathSeparatorChar 與系統(tǒng)有關(guān)的路徑分隔符柳畔。
- static String separator 與系統(tǒng)有關(guān)的默認(rèn)名稱分隔符虐呻,為了方便,它被表示為一個字符串文搂。
- static char separatorChar 與系統(tǒng)有關(guān)的默認(rèn)名稱分隔符。
操作路徑: 路徑不能寫死了
C:\develop\a\a.txt (windows)
C:/develop/a/a.txt (linux)
"C:"+File.separator+"develop"+File.separator+"a"+File.separator+"a.txt"
file的路徑和相對路徑:
路徑:
絕對路徑:是一個完整的路徑
以盤符(C:或D:)開始的路徑c:\a.txt
C:\Users\itcast\IdeaProjects\shungyuan\123.txt
D:\demo\b.txt
相對路徑:是一個簡化的路徑
相對指的是相對于當(dāng)前項目的根目錄(C:\Users\itcast\IdeaProjects\shungyuan)
如果使用當(dāng)前項目的根目錄,路徑可以簡化書寫
C:\Users\itcast\IdeaProjects\shungyuan\123.txt-->簡化為: 123.txt(可以省略項目的根目錄)
注意:
1.路徑是不區(qū)分大小寫
2.路徑中的文件名稱分隔符windows使用反斜杠,反斜杠是轉(zhuǎn)義字符,兩個反斜杠代表一個普通的反斜杠
File類的構(gòu)造方法:
- File(String pathname) 通過將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建一個新 File 實例秤朗。
參數(shù):
String pathname:字符串的路徑名稱
路徑可以是以文件結(jié)尾,也可以是以文件夾結(jié)尾
路徑可以是相對路徑,也可以是絕對路徑
路徑可以是存在,也可以是不存在
創(chuàng)建File對象,只是把字符串路徑封裝為File對象,不考慮路徑的真假情況
-
File(String parent, String child) 根據(jù) parent 路徑名字符串和 child 路徑名字符串創(chuàng)建一個新 File 實例煤蹭。
參數(shù):
把路徑分成了兩部分
String parent:父路徑
String child:子路徑
好處:
父路徑和子路徑,可以單獨(dú)書寫,使用起來非常靈活;父路徑和子路徑都可以變化
File(File parent, String child) 根據(jù) parent 抽象路徑名和 child 路徑名字符串創(chuàng)建一個新 File 實例。
參數(shù):
把路徑分成了兩部分
File parent:父路徑
String child:子路徑
好處:
父路徑和子路徑,可以單獨(dú)書寫,使用起來非常靈活;父路徑和子路徑都可以變化
父路徑是File類型,可以使用File的方法對路徑進(jìn)行一些操作,再使用路徑創(chuàng)建對象
常用方法:
1.獲取功能的方法:
- public String getAbsolutePath() :返回此File的絕對路徑名字符串。
獲取的構(gòu)造方法中傳遞的路徑
無論路徑是絕對的還是相對的,getAbsolutePath方法返回的都是絕對路徑
- public String getPath() :將此File轉(zhuǎn)換為路徑名字符串硝皂。
獲取的構(gòu)造方法中傳遞的路徑
File類里的toString方法調(diào)用的就是getPath方法
源碼:
public String toString() {
return getPath();
}
- public String getName() :返回由此File表示的文件或目錄的名稱常挚。
獲取的就是構(gòu)造方法傳遞路徑的結(jié)尾部分(文件/文件夾)
- public long length() :返回由此File表示的文件的長度。
獲取的是構(gòu)造方法指定的文件的大小,以字節(jié)為單位
注意:
文件夾是沒有大小概念的,不能獲取文件夾的大小
如果構(gòu)造方法中給出的路徑不存在,那么length方法返回0
2.判斷功能的方法:
- public boolean exists() :此File表示的文件或目錄是否實際存在稽物。
用于判斷構(gòu)造方法中的路徑是否存在
存在:true
不存在:false
public boolean isDirectory() :此File表示的是否為目錄奄毡。
用于判斷構(gòu)造方法中給定的路徑是否以文件夾結(jié)尾
是:true
否:falsepublic boolean isFile() :此File表示的是否為文件。
用于判斷構(gòu)造方法中給定的路徑是否以文件結(jié)尾
是:true
否:false
注意:
電腦的硬盤中只有文件/文件夾,兩個方法是互斥
這兩個方法使用前提,路徑必須是存在的,否則都返回false
3.創(chuàng)建刪除功能的方法:
- public boolean createNewFile() :當(dāng)且僅當(dāng)具有該名稱的文件尚不存在時贝或,創(chuàng)建一個新的空文件吼过。
創(chuàng)建文件的路徑和名稱在構(gòu)造方法中給出(構(gòu)造方法的參數(shù))
返回值:布爾值
true:文件不存在,創(chuàng)建文件,返回true
false:文件存在,不會創(chuàng)建,返回false
注意:
1.此方法只能創(chuàng)建文件,不能創(chuàng)建文件夾
2.創(chuàng)建文件的路徑必須存在,否則會拋出異常
public boolean createNewFile() throws IOException
createNewFile聲明拋出了IOException,我們調(diào)用這個方法,就必須的處理這個異常,要么throws,要么try...catch
- public boolean mkdir() :創(chuàng)建由此File表示的目錄。(創(chuàng)建單級空文件夾)
- public boolean mkdirs() :創(chuàng)建由此File表示的目錄咪奖,包括任何必需但不存在的父目錄盗忱。(既可以創(chuàng)建單級空文件夾,也可以創(chuàng)建多級文件夾)
創(chuàng)建文件夾的路徑和名稱在構(gòu)造方法中給出(構(gòu)造方法的參數(shù))
返回值:布爾值
true:文件夾不存在,創(chuàng)建文件夾,返回true
false:文件夾存在,不會創(chuàng)建,返回false;構(gòu)造方法中給出的路徑不存在也返回false
注意:
此方法只能創(chuàng)建文件夾,不能創(chuàng)建文件
- public boolean delete() :刪除由此File表示的文件或目錄。
此方法,可以刪除構(gòu)造方法路徑中給出的文件/文件夾
返回值:布爾值
true:文件/文件夾刪除成功,返回true
false:文件夾中有內(nèi)容,不會刪除返回false;構(gòu)造方法中路徑不存在false
注意:
delete方法是直接在硬盤刪除文件/文件夾,不走回收站,刪除要謹(jǐn)慎
遍歷(文件夾)目錄功能:
File類遍歷(文件夾)目錄功能
- public String[] list() :返回一個String數(shù)組羊赵,表示該File目錄中的所有子文件或目錄趟佃。
- public File[] listFiles() :返回一個File數(shù)組,表示該File目錄中的所有的子文件或目錄昧捷。
注意:
list方法和listFiles方法遍歷的是構(gòu)造方法中給出的目錄
如果構(gòu)造方法中給出的目錄的路徑不存在,會拋出空指針異常
如果構(gòu)造方法中給出的路徑不是一個目錄,也會拋出空指針異常
- public String[] list() :返回一個String數(shù)組闲昭,表示該File目錄中的所有子文件或目錄。
遍歷構(gòu)造方法中給出的目錄,會獲取目錄中所有文件/文件夾的名稱,把獲取到的多個名稱存儲到一個String類型的數(shù)組中
并且可以獲取到隱藏的文件夾靡挥。
- public File[] listFiles() :返回一個File數(shù)組汤纸,表示該File目錄中的所有的子文件或目錄。
遍歷構(gòu)造方法中給出的目錄,會獲取目錄中所有的文件/文件夾,把文件/文件夾封裝為File對象,多個File對象存儲到File數(shù)組中(也就是存儲的都是帶路徑的)