Java的簡(jiǎn)單理解(21)---IO的File

Java
1. File

File:文件和路徑名的抽象表示竿刁。

File.pathSeparator
表示為";"

與系統(tǒng)相關(guān)的路徑分隔符妒峦。也就是一個(gè);

// 路徑的表示形式
String path = "E:\\xp\\test\\2.jpg";
// 動(dòng)態(tài)表示
path = "E:" +File.separator + "xp" + File.separator + "test" + File.separator + "2.jpg";
// 推薦方式
path = "E:/xp/test/2.jpg";

2.相對(duì)路徑
String parentPath = "E:/xp/test";
String name = "2.jpg";

// 相對(duì)路徑
File src = new File(parentPath,name);
src = new File(new File(parentPath),name);
src.getName(); // 2.jpg
src.getPath(); // E:/xp/test/2.jpg
3.絕對(duì)路徑
// 絕對(duì)路徑
src = new File("E:/xp/test/2.jpg");
src.getName(); // 2.jpg
src.getPath(); // E:/xp/test/2.jpg
4.沒有盤符
src = new File("test.txt");
src.getName(); //test.txt
src.getPath(); //test.txt
src.getAbsolutePath(); // D:\workspace\IO\test.txt
相對(duì)于文件的位置而言
5.File的常用方法
    File src = new File("test.txt");
        src.getName(); // 返回名稱
        src.getPath(); // 如果是絕對(duì)路徑奈籽,返回完整路徑痛悯,否則相對(duì)路徑
        src.getAbsolutePath(); // 返回絕對(duì)路徑
        src.getParent(); // 返回上一級(jí)目錄鸵鸥,如果是相對(duì)嵌巷,沒有上一級(jí)萄凤,返回null

        src.exists(); // 測(cè)試此抽象路徑名表示的文件或目錄是否存在
        src.canRead(); // 測(cè)試文件是否可以讀取
        src.canWrite(); // 測(cè)試文件是否可以修改
        src.isFile(); // 判斷表示的是否是普通文件
        src.isDirectory(); // 判斷表示的是否是目錄
        src.isAbsolute(); // 判斷是否是絕對(duì)路徑

        src.length(); // 文件的長(zhǎng)度,為字節(jié)數(shù)搪哪。

        String path = "E:/xp/test/1.jpg";
        File file = new File(path);
        if (!file.exists()) {
            try {
                boolean flag = file.createNewFile(); // 當(dāng)文件不存在時(shí)靡努,創(chuàng)建一個(gè)新文件。
                System.out.println(flag ? "成功" : "失敗");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        file.delete(); // 刪除一個(gè)文件或目錄,目錄必須為空惑朦,才能刪除

        try {
            File temp = File.createTempFile("tes",".temp",new File("E:/xp/test/")); // 創(chuàng)建一個(gè)臨時(shí)的空文件兽泄,使用指定的前綴和后綴為文件名
            temp.deleteOnExit(); // 退出即刪除
        } catch (IOException e) {
            e.printStackTrace();
        }
6.操作目錄
    /**
     * 操作目錄
     * mkdir(): 創(chuàng)建目錄,必須確保父目錄存在漾月,如果不存在病梢,創(chuàng)建失敗
     * mkdirs(): 創(chuàng)建目錄,如果父目錄鏈不存在一同創(chuàng)建
     * list(): 文件\目錄字符串形式
     *
     */
    public static void main() {

        String path = "E:/xp/test";
        File src = new File(path);

        if (src.isDirectory()) { // 為目錄
            String[] subNames = src.list();
            for (String temp : subNames) {
                System.out.println(temp);
            }

            File[] subFiles = src.listFiles();
            for (File temp : subFiles) {
                System.out.println(temp.getAbsolutePath());
            }

            // 添加過(guò)濾器
            subFiles = src.listFiles(new FilenameFilter() {
                // dir: 自己的src
                @Override
                public boolean accept(File dir, String name) {
                    return new File(dir,name).isFile() && name.endsWith(".java");
                }
            });
        }
    }
7. IO流

一.概念
流:流動(dòng)栅屏,流向飘千,從一端移動(dòng)到另一端 源頭與目的地
程序 與 文件、數(shù)組栈雳、網(wǎng)絡(luò)連接护奈、數(shù)據(jù)庫(kù),以程序?yàn)橹行?/strong>

二.IO流分類

  1. 流向:輸入流與輸出流
  2. 數(shù)據(jù):
  • 字節(jié)流:二進(jìn)制哥纫,可以一切文件 包括 純文本 doc霉旗,音頻,視頻等等蛀骇。
  • 字符流:文本文件厌秒,只能處理純文本
  1. 功能:
  • 節(jié)點(diǎn):包裹源頭
  • 處理:增強(qiáng)功能,提供性能

三.字符流與字節(jié)流
1. 字節(jié)流
輸入流InputStream(抽象類)

  • read(byte[] b) :從輸入流讀取一些字節(jié)數(shù)擅憔,并將它們存儲(chǔ)到緩沖區(qū) b 鸵闪。
  • read(byte[] b, int off, int len):從輸入流讀取最多 len字節(jié)的數(shù)據(jù)到一個(gè)字節(jié)數(shù)組。
  • close() :關(guān)閉此輸入流并釋放與流相關(guān)聯(lián)的任何系統(tǒng)資源暑诸。

輸出流OutputStream(抽象類)

  • write(byte[] b) :b.length字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流蚌讼。
  • write(byte[] b, int off, int len) :從指定的字節(jié)數(shù)組寫入len個(gè)字節(jié),從偏移 off開始輸出到此輸出流个榕。
  • flush() :刷新此輸出流并強(qiáng)制任何緩沖的輸出字節(jié)被寫出篡石。
  • close() :關(guān)閉此輸出流并釋放與此流相關(guān)聯(lián)的任何系統(tǒng)資源。

2.字符流
輸入流Reader:用于讀取字符流的抽象類

  • read(char[] cbuf) :將字符讀入數(shù)組西采。
  • read(char[] cbuf, int off, int len) :將字符讀入數(shù)組的一部分凰萨。
  • close() :關(guān)閉流并釋放與之相關(guān)聯(lián)的任何系統(tǒng)資源

輸出流Writer:用于寫入字符流的抽象類

  • write(char[] cbuf) :寫入一個(gè)字符數(shù)組。
  • write(char[] cbuf, int off, int len) :寫入字符數(shù)組的一部分械馆。
  • flush() :刷新流胖眷。
  • close() :關(guān)閉流,先刷新霹崎。

四.操作

    1. 舉例:搬家 ---》 讀取文件
      1.關(guān)聯(lián)房子 ---》建立與文件聯(lián)系
      2.選擇搬家 ---》選擇對(duì)應(yīng)流
      3.搬家 ---》讀取|寫入
      1.卡車大小 ---》數(shù)組大小
      2.運(yùn)輸 ---》讀取瘦材,寫入
      4.打發(fā)over ---》釋放資源
  1. 操作
    1.建立聯(lián)系
    2.選擇流
    3.操作:數(shù)組大小read write
    4.釋放資源
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市仿畸,隨后出現(xiàn)的幾起案子食棕,更是在濱河造成了極大的恐慌朗和,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件簿晓,死亡現(xiàn)場(chǎng)離奇詭異眶拉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)憔儿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門忆植,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人谒臼,你說(shuō)我怎么就攤上這事朝刊。” “怎么了蜈缤?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵拾氓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我底哥,道長(zhǎng)咙鞍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任趾徽,我火速辦了婚禮续滋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵奶。我一直安慰自己疲酌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布了袁。 她就那樣靜靜地躺著朗恳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪早像。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天肖爵,我揣著相機(jī)與錄音卢鹦,去河邊找鬼。 笑死劝堪,一個(gè)胖子當(dāng)著我的面吹牛冀自,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秒啦,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼熬粗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了余境?” 一聲冷哼從身側(cè)響起驻呐,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤灌诅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后含末,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猜拾,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年佣盒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挎袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肥惭,死狀恐怖盯仪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蜜葱,我是刑警寧澤全景,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站笼沥,受9級(jí)特大地震影響蚪燕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜奔浅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一馆纳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汹桦,春花似錦鲁驶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至督禽,卻和暖如春脆霎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狈惫。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工睛蛛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胧谈。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓忆肾,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親菱肖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子客冈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

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