File

File

文件和文件夾(文件路徑)的抽象表示婚陪,是專門來(lái)處理磁盤上面的文件或者文件夾的

之前都是手動(dòng)創(chuàng)建沪摄,現(xiàn)在可以借助Java封裝好的類創(chuàng)建文件夾和文件憎妙。

1File 類的構(gòu)造方法

1.1File(String pathname)

通過將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建新的 File實(shí)例弃鸦。

1.2File(String parent, String child)

從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實(shí)例听盖。

package com.wyx.b_file;

import java.io.File;

public class Demo1 {
    public static void main(String[] args) {
        File file = new File("d:/aaa/1.text");
        System.out.println(file);
        File file1 = new File("d:/aaa/", "1.text");
        //  java 中路徑分割符問題
        //  看系統(tǒng)
        //  / 在windows系統(tǒng)和Linux系統(tǒng)都可以
        //  \ 只能在windows系統(tǒng)中可以使用

        /**
         * static String    separator
         * 與系統(tǒng)相關(guān)的默認(rèn)名稱 - 分隔符字符胀溺,以方便的方式表示為字符串。
         * 當(dāng)你是window系統(tǒng)的時(shí)候 separator就是\
         * 當(dāng)你的代碼在linux系統(tǒng)的時(shí)候  separator就是/
         */
        System.out.println(File.separator);// 因?yàn)槭窃趙indows系統(tǒng)下皆看,所以輸出是\

        //所以為了保證你的代碼在任意的系統(tǒng)下面 路徑的分割符是都可以使用仓坞,可以這樣寫
        File file2 = new File("d:" + File.separator + "aaa" + File.separator + "1.text");
        System.out.println(file2);
    }
}

2File下面的方法

2.1 boolean createNewFile();

創(chuàng)建一個(gè)文件 返回值是布爾類型的數(shù)據(jù)

1.如果文件路徑不存在會(huì)報(bào)錯(cuò)

2.如果文件名字已經(jīng)存在,返回false

3.磁盤壞了腰吟,創(chuàng)建不了

2.2 boolean mkdir();

創(chuàng)建文件夾 返回值是布爾類型的數(shù)據(jù)
創(chuàng)建單級(jí)路徑:只能創(chuàng)建一個(gè)子級(jí)目錄

2.3 boolean mkdirs();

記住這個(gè)就可以了无埃,不僅可以創(chuàng)建單極還可以創(chuàng)建多級(jí)目錄
創(chuàng)建文件夾 返回值是布爾類型的數(shù)據(jù)
創(chuàng)建多級(jí)路徑:可以創(chuàng)建多級(jí)目錄

package com.wyx.b_file;

import java.io.File;
import java.io.IOException;

public class Demo2 {
    public static void main(String[] args) throws IOException {
        //在E盤aaa文件下    創(chuàng)建文件1.text
        File file = new File("e:/aaa/1.text");
        System.out.println(file.createNewFile());

        //在E盤aaa文件下    創(chuàng)建文件夾bbb
        File file1 = new File("e:/aaa/bbb");
        System.out.println(file1.mkdir());

        //在E盤aaa文件下    創(chuàng)建文件夾ccc,然后在ccc文件下創(chuàng)建ddd文件夾
        File file2 = new File("E:/aaa/ccc/ddd");
        System.out.println(file2.mkdirs());


    }
}

2.4刪除文件或者文件夾

boolean delete();

立即刪除文件,常用的

void deleteOnExit();

不會(huì)立即刪除毛雇,是程序退出以后才刪除的

delete刪除文件夾的時(shí)候嫉称,只能刪除空的文件夾
package com.wyx.b_file;

import java.io.File;
import java.util.Scanner;

public class Demo3 {
    public static void main(String[] args) {
        //刪除文件
        File file = new File("e:/aaa/1.text");
        System.out.println(file.delete());//true

        //刪除E盤aaa文件下的bbb文件夾
        File file1 = new File("e:/aaa/bbb");
        System.out.println(file1.delete());//true


        //一個(gè)非空的文件夾是刪除不了的
        File file2 = new File("e:/aaa/ccc");
        System.out.println(file2.delete());//false

        //程序結(jié)束再刪除文件
        File file3 = new File("e:/aaa/ccc/ddd");
        file3.deleteOnExit();
        //借助scanner對(duì)象控制程序是否結(jié)束。
        new Scanner(System.in).nextInt();

    }
}

File對(duì)象的判斷方法(比較常用)

boolean isFile(); 是否是文件【常用】

boolean isDirectory();是否是文件夾【常用】

boolean isHidden();是否是隱藏文件

boolean isAbsolute();是否是絕對(duì)路徑

boolean exists();判斷文件或者文件夾是否存在【重要】

package com.wyx.b_file;

import java.io.File;
import java.io.IOException;

public class Demo4 {
    public static void main(String[] args) throws IOException {
        //判斷是否是文件
        File file = new File("e:/aaa/ccc");
        System.out.println(file.isFile());//false

        //判斷是否是文件夾
        System.out.println(file.isDirectory());//true

        //判斷是否是隱藏文件
        File file1 = new File("e:/aaa/1.txt");
        System.out.println(file1.isHidden());//true

        //判斷是否是絕對(duì)路徑
        System.out.println(file.isAbsolute());//true

        //相對(duì)路徑new對(duì)象禾乘,相對(duì)于Demo4這個(gè)文件來(lái)說(shuō)
        File file2 = new File("./");
        System.out.println(file2.isAbsolute());//false

        //判斷一個(gè)文件夾或文件是否存在澎埠,存在返回true
        System.out.println(file1.exists());//true
        //用途可以先判斷文件或文件夾是否存在,如果不存在再去創(chuàng)建文件或文件夾
        if (!file1.exists()) {
            file1.createNewFile();
        }
    }
}

返回值是String類型的數(shù)據(jù)

String getName(); 獲取文件或者文件夾的名字

String getPath();獲取當(dāng)前對(duì)象的路徑

String getParent();獲取當(dāng)前文件對(duì)象的上一級(jí)的目錄

package com.wyx.b_file;

import java.io.File;
import java.lang.reflect.Array;
import java.util.Arrays;

public class Demo5 {
    public static void main(String[] args) {
        File file = new File("e:/aaa/ccc");
        System.out.println(file.getName());

        System.out.println(file.getParent());
        //這個(gè)控制臺(tái)輸出的路徑是字符串始藕,雖然和sout(file)輸出的內(nèi)容一樣蒲稳,但代表意思是不一樣
        System.out.println(file.getPath());
        System.out.println(Arrays.toString(file.getPath().split("\\\\")));
        //返回的是file對(duì)象
        System.out.println(file);

    }
}

返回是long類型數(shù)據(jù)的

long length();返回值是文件占用的字節(jié)數(shù)

long lastModified();獲取當(dāng)前文件最后一次修改的時(shí)間

  這個(gè)是毫秒氮趋,除以1000 變成秒,才是時(shí)間戳

時(shí)間戳:從1970年1月1日00時(shí)00分00秒開始江耀,到現(xiàn)在時(shí)間剩胁,就是時(shí)間戳。

package com.wyx.b_file;

import java.io.File;

public class Demo6 {
    public static void main(String[] args) {
        File file = new File("e:/aaa/2.txt");
        //一個(gè)漢字三個(gè)字節(jié)祥国,一個(gè)符號(hào)也是三個(gè)字節(jié)
        System.out.println("占用字節(jié)數(shù)" + file.length());

        System.out.println(file.lastModified());
        //1682323596323   顯示的是毫秒昵观,除以1000是一個(gè)時(shí)間戳

    }
}

返回值是數(shù)組類型的方法

File[] listFiles(); 獲取當(dāng)前文件夾下面的所有的文件或文件夾,
數(shù)組里面存的是對(duì)象

String[] list();獲取當(dāng)前文件夾下面的所有文件或文件夾的名字

package com.wyx.b_file;

import java.io.File;
import java.util.Arrays;

public class Demo7 {
    public static void main(String[] args) {
        File file = new File("c:/");
        File[] files = file.listFiles();
        System.out.println(Arrays.toString(files));

        String[] strings = file.list();
        System.out.println(Arrays.toString(strings));
    }


}

遞歸

需求:刪除某一個(gè)文件夾下面的所有的文件

package com.wyx.b_file;

import java.io.File;

public class Demo8 {
    public static void main(String[] args) {
        File file = new File("e:/aaa/bbb");
        del(file);
        System.out.println("遞歸結(jié)束");
    }
    public static void del(File file){
        //取出當(dāng)前文件夾下的所有文件或者文件夾
        File[] files = file.listFiles();

        //遍歷對(duì)象舌稀,如果是文件刪除啊犬,如果是文件夾,遞歸
        for (File file1 : files) {
            if (file1.isDirectory()) {
                del(file1);
            }else {
                file1.delete();
            }

        }
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末壁查,一起剝皮案震驚了整個(gè)濱河市觉至,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌睡腿,老刑警劉巖语御,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異席怪,居然都是意外死亡应闯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門挂捻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碉纺,“玉大人,你說(shuō)我怎么就攤上這事细层∠Ъ” “怎么了唬涧?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵疫赎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我碎节,道長(zhǎng)捧搞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任狮荔,我火速辦了婚禮胎撇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殖氏。我一直安慰自己晚树,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布雅采。 她就那樣靜靜地躺著爵憎,像睡著了一般慨亲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宝鼓,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天刑棵,我揣著相機(jī)與錄音,去河邊找鬼愚铡。 笑死蛉签,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沥寥。 我是一名探鬼主播碍舍,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邑雅!你這毒婦竟也來(lái)了乒验?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蒂阱,失蹤者是張志新(化名)和其女友劉穎锻全,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體录煤,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鳄厌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妈踊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片了嚎。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖廊营,靈堂內(nèi)的尸體忽然破棺而出歪泳,到底是詐尸還是另有隱情,我是刑警寧澤露筒,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布呐伞,位于F島的核電站,受9級(jí)特大地震影響慎式,放射性物質(zhì)發(fā)生泄漏伶氢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一瘪吏、第九天 我趴在偏房一處隱蔽的房頂上張望癣防。 院中可真熱鬧,春花似錦掌眠、人聲如沸蕾盯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)级遭。三九已至香嗓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間装畅,已是汗流浹背靠娱。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掠兄,地道東北人像云。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蚂夕,于是被迫代替她去往敵國(guó)和親迅诬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

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