File

File

  1. File類描述的是一個文件或文件夾救巷。(文件夾也可以稱為目錄)
  2. 該類的出現(xiàn)是對文件系統(tǒng)的中的文件以及文件夾進(jìn)行對象的封裝艰猬。可以通過對象的思想來操作文件以及文件夾粪薛。
  3. 可以用面向?qū)ο蟮奶幚韱栴}纺铭,通過該對象的方法寇钉,可以得到文件或文件夾的信息方便了對文件與文件夾的屬性信息進(jìn)行操作舶赔。
  4. 文件包含很多的信息:如文件名扫倡、創(chuàng)建修改時間、大小竟纳、可讀可寫屬性等撵溃。

字段

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)名稱分隔符际歼。 

System.out.println(File.pathSeparator);         //;
System.out.println(File.pathSeparatorChar);     //;
System.out.println(File.separator);             //\(Windows下)
System.out.println(File.separatorChar);         //\(Windows下)

構(gòu)造方法摘要

File(File parent, String child) 
      根據(jù) parent 抽象路徑名和 child 路徑名字符串創(chuàng)建一個新 File 實例惶翻。 
File(String pathname) 
      通過將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建一個新 File 實例。 
File(String parent, String child) 
      根據(jù) parent 路徑名字符串和 child 路徑名字符串創(chuàng)建一個新 File 實例鹅心。 

方法

boolean canExecute() 
      測試應(yīng)用程序是否可以執(zhí)行此抽象路徑名表示的文件吕粗。 
boolean canRead() 
      測試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件。 
boolean canWrite() 
      測試應(yīng)用程序是否可以修改此抽象路徑名表示的文件巴帮。

boolean createNewFile() 
      當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時溯泣,不可分地創(chuàng)建一個新的空文件。

    File f = new File("a.java");
    try {
        f.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();
    }


static File createTempFile(String prefix, String suffix) 
      在默認(rèn)臨時文件目錄中創(chuàng)建一個空文件榕茧,使用給定前綴和后綴生成其名稱垃沦。 prefix 參數(shù)至少必須是三個字節(jié)長
static File createTempFile(String prefix, String suffix, File directory) 
       在指定目錄中創(chuàng)建一個新的空文件,使用給定的前綴和后綴字符串生成其名稱用押。 prefix 參數(shù)至少必須是三個字節(jié)長

    File f = new File(".\\");
    try {
        File.createTempFile("abc", ".java", f);
    } catch (IOException e) {
        e.printStackTrace();
    }

在項目根目錄新建了文件 abc1006817782508133744.java

boolean mkdir() 
      創(chuàng)建此抽象路徑名指定的目錄肢簿。 父文件夾必須存在
boolean mkdirs() 
      創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄蜻拨。 父文件夾可以不存在

    File f = new File("C:\\Users\\Administrator\\Desktop\\11\\12\\123");
    f.mkdirs();

boolean delete() 
      刪除此抽象路徑名表示的文件或目錄池充。 
不放入回收站直接刪除,找不回的那種缎讼,刪除文件夾是只能刪除空文件夾

    public static void main(String[] args) {
        File f = new File("C:\\Users\\Administrator\\Desktop\\11");
        deleteFile(f);
    }
    private static void deleteFile(File f) {
        File[] list = f.listFiles();
        if(list != null) {
            for (File file : list) {
                if(file.isDirectory()) {
                    deleteFile(file);
                }
                file.delete();
            }
        }
        f.delete();
    }


void deleteOnExit() 
      在虛擬機終止時收夸,請求刪除此抽象路徑名表示的文件或目錄。 
調(diào)用時不會刪除血崭,在虛擬機終止時刪除

boolean renameTo(File dest) 
      重新命名此抽象路徑名表示的文件卧惜。 
當(dāng)前目錄下重命名厘灼,不同路徑復(fù)制
long length() 
      返回由此抽象路徑名表示的文件的長度。
boolean isDirectory() 
      測試此抽象路徑名表示的文件是否是一個目錄咽瓷。 
boolean isFile() 
      測試此抽象路徑名表示的文件是否是一個標(biāo)準(zhǔn)文件设凹。 
boolean isHidden() 
      測試此抽象路徑名指定的文件是否是一個隱藏文件。 

String[] list() 
      返回一個字符串?dāng)?shù)組茅姜,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄闪朱。 
String[] list(FilenameFilter filter) 
      返回一個字符串?dāng)?shù)組,這些字符串指定此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄钻洒。 
File[] listFiles() 
      返回一個抽象路徑名數(shù)組奋姿,這些路徑名表示此抽象路徑名表示的目錄中的文件。 
File[] listFiles(FileFilter filter) 
      返回抽象路徑名數(shù)組航唆,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄胀蛮。 
File[] listFiles(FilenameFilter filter) 
      返回抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄糯钙。 
static File[] listRoots() 
      列出可用的文件系統(tǒng)根粪狼。 

    FilenameFilter實現(xiàn)此接口的類實例可用于過濾器文件名
    FileFilter用于抽象路徑名的過濾器。 

String getName() 
      返回由此抽象路徑名表示的文件或目錄的名稱任岸。

    public static void main(String[] args) {
        File f = new File("./b.txt");
        System.out.println(f.getName());
    }
//b.txt

此時如果沒有該文件文件再榄,執(zhí)行時依然能獲取到名字,因為虛擬機在內(nèi)存中創(chuàng)建了文件 

路徑

路徑就是文件或文件夾所在的位置享潜。

路徑分割符

  1. 上下級文件夾之間使用分隔符分開:
    在Windows中分隔符為''困鸥,在Unix/Linux中分隔符為'/'。

  2. 跨平臺的目錄分隔符
    更專業(yè)的做法是使用File.separatorChar剑按,這個值就會根據(jù)系統(tǒng)得到的相應(yīng)的分割符疾就。

     例:new File("c:" + File.separatorChar + "a.txt");
     注意,如果是使用"\"艺蝴,則需要進(jìn)行轉(zhuǎn)義猬腰,寫為"\\"才可以,如果是兩個"\"猜敢,則寫為"\\\\"姑荷。
    

絕對路徑與相對路徑

  1. 絕對路徑

    • 對于UNIX平臺,絕對路徑名的前綴是"/"缩擂。相對路徑名沒有前綴鼠冕。
    • 對于Windows平臺,絕對路徑名的前綴由驅(qū)動器號和一個":"組成胯盯,例"c:\..."懈费。相對路徑?jīng)]有盤符前綴。
  2. 相對路徑:
    相對路徑是指相對于某位置的路徑博脑,是指相對于當(dāng)前目錄憎乙。
    在執(zhí)行Java程序時薄坏,相對路徑為執(zhí)行java命令時當(dāng)前所在的目錄。

     File file = new File("a.txt");
     File file = new File(".\\a.txt");
     都表示本目錄下文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寨闹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子君账,更是在濱河造成了極大的恐慌繁堡,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乡数,死亡現(xiàn)場離奇詭異椭蹄,居然都是意外死亡,警方通過查閱死者的電腦和手機净赴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門绳矩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玖翅,你說我怎么就攤上這事翼馆。” “怎么了金度?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵应媚,是天一觀的道長。 經(jīng)常有香客問我猜极,道長中姜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任跟伏,我火速辦了婚禮丢胚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘受扳。我一直安慰自己携龟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布辞色。 她就那樣靜靜地躺著骨宠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪相满。 梳的紋絲不亂的頭發(fā)上层亿,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音立美,去河邊找鬼匿又。 笑死,一個胖子當(dāng)著我的面吹牛建蹄,可吹牛的內(nèi)容都是我干的碌更。 我是一名探鬼主播裕偿,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痛单!你這毒婦竟也來了嘿棘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤旭绒,失蹤者是張志新(化名)和其女友劉穎鸟妙,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挥吵,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡重父,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忽匈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片房午。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丹允,靈堂內(nèi)的尸體忽然破棺而出郭厌,到底是詐尸還是另有隱情,我是刑警寧澤雕蔽,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布沪曙,位于F島的核電站,受9級特大地震影響萎羔,放射性物質(zhì)發(fā)生泄漏液走。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一贾陷、第九天 我趴在偏房一處隱蔽的房頂上張望缘眶。 院中可真熱鬧,春花似錦髓废、人聲如沸巷懈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽顶燕。三九已至,卻和暖如春冈爹,著一層夾襖步出監(jiān)牢的瞬間涌攻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工频伤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恳谎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像因痛,于是被迫代替她去往敵國和親婚苹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

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