溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java?IO中File類是什么

發(fā)布時間:2022-01-20 09:23:09 來源:億速云 閱讀:172 作者:小新 欄目:開發(fā)技術(shù)

本文將為大家詳細(xì)介紹“Java IO中File類是什么”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會更新不同的知識點,希望這篇“Java IO中File類是什么”能夠給你意想不到的收獲,請大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識吧。

    File 類:文件和目錄路徑名的抽象表示。

    注意:File 類只能操作文件的屬性,文件的內(nèi)容是不能操作的。

    1、File 類的字段

    Java?IO中File類是什么

    我們知道,各個平臺之間的路徑分隔符是不一樣的。

    ①、對于UNIX平臺,絕對路徑名的前綴始終為"/" 。 相對路徑名沒有前綴。 表示根目錄的抽象路徑名具有前綴"/"和空名稱序列。

    ②、對于Microsoft Windows平臺,包含驅(qū)動器說明符的路徑名的前綴由后面跟著":"的驅(qū)動器號組成,如果路徑名是絕對的,則可能后跟"\\" 。 UNC路徑名的前綴為"\\\\" ; 主機(jī)名和共享名稱是名稱序列中的前兩個名稱沒有有指定驅(qū)動器的相對路徑名沒有前綴。

    那么為了屏蔽各個平臺之間的分隔符差異,我們在構(gòu)造 File 類的時候(如何構(gòu)造,請看下面第二點),就可以使用上述 Java 為我們提供的字段。

    那么我們可以看出:

    File.pathSeparator指的是分隔連續(xù)多個路徑字符串的分隔符

    File.separator是用來分隔同一個路徑字符串中的目錄的

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

    Java?IO中File類是什么

    如何使用上述構(gòu)造方法,請看如下例子: 

    //不使用 Java 提供的分隔符字段,注意:這樣寫只能在 Windows 平臺有效
            File f1 = new File("D:\\IO\\a.txt");
            //使用 Java 提供的分隔符
            File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
            System.out.println(f1);//輸出 D:\IO\a.txt  
            System.out.println(f2);//輸出 D:\IO\a.txt
             
            //File(File parent, String child)
            //從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實例。
            File f3 = new File("D:");
            File f4 = new File(f3,"IO");
            System.out.println(f4); //D:\IO
             
            //File(String pathname)
            //通過將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建新的 File實例。
            File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
            System.out.println(f5); //D:\IO\a.txt
             
            //File(String parent, String child)
            //從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實例。
            File f6 = new File("D:","IO\\a.txt");
            System.out.println(f6); //D:\IO\a.txt

    3、File 類的常用方法

    ①、創(chuàng)建方法

    1.boolean createNewFile() 不存在返回true 存在返回false

    2.boolean mkdir() 創(chuàng)建目錄,如果上一級目錄不存在,則會創(chuàng)建失敗

    3.boolean mkdirs() 創(chuàng)建多級目錄,如果上一級目錄不存在也會自動創(chuàng)建

    ②、刪除方法

    1.boolean delete() 刪除文件或目錄,如果表示目錄,則目錄下必須為空才能刪除

    2.boolean deleteOnExit() 文件使用完成后刪除

    ③、判斷方法

    1.boolean canExecute()判斷文件是否可執(zhí)行

    2.boolean canRead()判斷文件是否可讀

    3.boolean canWrite() 判斷文件是否可寫

    4.boolean exists() 判斷文件或目錄是否存在

    5.boolean isDirectory() 判斷此路徑是否為一個目錄

    6.boolean isFile()  判斷是否為一個文件

    7.boolean isHidden()  判斷是否為隱藏文件

    8.boolean isAbsolute()判斷是否是絕對路徑 文件不存在也能判斷

    ④、獲取方法

    1.String getName() 獲取此路徑表示的文件或目錄名稱

    2.String getPath() 將此路徑名轉(zhuǎn)換為路徑名字符串

    3.String getAbsolutePath()返回此抽象路徑名的絕對形式

    4.String getParent()//如果沒有父目錄返回null

    5.long lastModified()//獲取最后一次修改的時間

    6.long length()返回由此抽象路徑名表示的文件的長度。

    7.boolean renameTo(File f)重命名由此抽象路徑名表示的文件。

    8.File[] liseRoots()//獲取機(jī)器盤符

    9.String[] list() 返回一個字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。

    10.String[] list(FilenameFilter filter)返回一個字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。

    //File(File parent, String child)
            //從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實例。
            File dir = new File("D:"+File.separator+"IO");
            File file = new File(dir,"a.txt");
             
            //判斷dir 是否存在且表示一個目錄
            if(!(dir.exists()||dir.isDirectory())){
                //如果 dir 不存在,則創(chuàng)建這個目錄
                dir.mkdirs();
                //根據(jù)目錄和文件名,創(chuàng)建 a.txt文件
                file.createNewFile();
     
            }
            //返回由此抽象路徑名表示的文件或目錄的名稱。 這只是路徑名稱序列中的最后一個名字。 如果路徑名的名稱序列為空,則返回空字符串。
            System.out.println(file.getName()); //a.txt
            //返回此抽象路徑名的父null的路徑名字符串,如果此路徑名未命名為父目錄,則返回null。
            System.out.println(file.getParent());//D:\IO
            //將此抽象路徑名轉(zhuǎn)換為路徑名字符串。 結(jié)果字符串使用default name-separator character以名稱順序分隔名稱。
            System.out.println(file.getPath()); //D:\IO\a.txt

    4、File 的一些技巧

    ①、打印給定目錄下的所有文件夾和文件夾里面的內(nèi)容 

    public static void getFileList(File file){
            //第一級子目錄
            File[] files = file.listFiles();
            for(File f:files){
                //打印目錄和文件
                System.out.println(f);
                if(f.isDirectory()){
                    getFileList(f);
                }
            }
        }

    測試:

    public static void main(String[] args) throws Exception {
            File f = new File("D:"+File.separator+"WebStormFile");
            getFileList(f);
        }

    感謝您能讀到這里,小編希望您對“Java IO中File類是什么”這一關(guān)鍵問題有了從實踐層面最深刻的體會,具體使用情況還需要大家自己動手實踐使用過才能領(lǐng)會,如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI