day01(1)File類

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
    否:false

  • public 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ù)組中(也就是存儲的都是帶路徑的)
image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芹血,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子楞慈,更是在濱河造成了極大的恐慌幔烛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件囊蓝,死亡現(xiàn)場離奇詭異饿悬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)聚霜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門狡恬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝎宇,你說我怎么就攤上這事弟劲。” “怎么了姥芥?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵兔乞,是天一觀的道長。 經(jīng)常有香客問我,道長庸追,這世上最難降的妖魔是什么霍骄? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮淡溯,結(jié)果婚禮上读整,老公的妹妹穿的比我還像新娘。我一直安慰自己咱娶,他們只是感情好米间,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著豺总,像睡著了一般车伞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喻喳,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天另玖,我揣著相機(jī)與錄音,去河邊找鬼表伦。 笑死谦去,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蹦哼。 我是一名探鬼主播鳄哭,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纲熏!你這毒婦竟也來了妆丘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤局劲,失蹤者是張志新(化名)和其女友劉穎勺拣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鱼填,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡药有,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了苹丸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片愤惰。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赘理,靈堂內(nèi)的尸體忽然破棺而出宦言,到底是詐尸還是另有隱情,我是刑警寧澤感憾,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布蜡励,位于F島的核電站令花,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凉倚。R本人自食惡果不足惜兼都,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望稽寒。 院中可真熱鬧扮碧,春花似錦、人聲如沸杏糙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宏侍。三九已至赖淤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谅河,已是汗流浹背咱旱。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留绷耍,地道東北人吐限。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像褂始,于是被迫代替她去往敵國和親诸典。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容