Java的File類

1、概述

   File是描述一個文件或者文件夾亦稱爲目錄的類。java

   File中有兩種建立file對象的方法:File(String pathname)和 File(File parent, String child);測試

  一、經過路徑名建立file文件spa

        //1.表示建立了一個file對象指向D盤的a.txt
        //只是將傳入的字符串標記爲一個file對象
        //實際上此時並不去計算機中檢查這個文件是否存在
        File file = new File("D:a.txt");
        //File file = new File("D:\\test.txt");
        //File file = new File("D:\\a\\b\\c");
        
        //2.建立文件
        //當且僅當這個文件不存在時候,纔會建立一個新文件
        //這個方法只能用於建立文件
        boolean b = file.createNewFile();

 二、經過父路徑和子路徑建立file對象操作系統

 本質上是拼接父路徑和子路徑,而後建立file對象。code

public void cutFile(File src, File dest) {
         if(src.isDirectory()) {
             return;
         }         
         //獲取要剪切的文件的名字
         String fileName =src.getName();
         //建立同名文件
         File newFile = new File(dest, fileName);
}

2、路徑

  一、目錄間隔符

    在Windows中,用\\間隔目錄;在Linux或者是Unix中,是用/間隔目錄,Java中爲了屏蔽不一樣操做系統的差別性,因此提供了File.separator表示中間符。對象

  示例以下blog

File file = new File("D:"+ File.separator +"everydayNote" + File.separator + "Day08"
                + File.separator + "Day08 - 副本");

 二、路徑間隔符

   在Windows中,用;間隔不一樣的路徑;在Linux或者Unix中,用:間隔不一樣的路徑,java中爲了屏蔽不一樣操做系統的差別性,因此提供了File.pathSeparator表示間隔符;字符串

 三、絕對路徑:

    以盤符或者是/開頭的路徑。在計算路徑的時候和當前路徑沒有任何關係get

 四、相對路徑:

    不以盤符或者是/開頭的路徑。在計算路徑的時候須要以當前路徑爲基準進行計算。「../」表示上一層目錄。虛擬機

示例:

File file = new File("D:\\a.txt");               
//1. 獲取絕對路徑 System.out.println(file.getAbsolutePath()); //2. 獲取路徑 System.out.println(file.getPath()); System.out.println(file.getParent());

3、File中經常使用的方法

 一、建立方法

  建立文件的方法:createNewFile()在指定位置建立一個空文件,成功就返回true,若是已存在就不建立而後返回false

  建立單級目錄的方法:mkdir(): 在指定位置建立目錄,這隻會建立最後一級目錄,若是上級目錄不存在就拋異常。

  建立多級目錄:mkdirs() 在指定位置建立目錄,這會建立路徑中全部不存在的目錄。

  重命名文件:renameTo(File dest) 重命名文件或文件夾,也能夠操做非空的文件夾,文件不一樣時至關於對文件進行剪切,剪切時候不能操做非空的文件夾。移動/重命名成功則返回true,失敗則返回false。

 二、判斷文件或者目錄是否存在

   exists() 文件或文件夾是否存在。

   判斷是否爲一個文件:isFile() 是不是一個文件,若是不存在,則始終爲false。

  判斷是否爲一個目錄:isDirectory() 是不是一個目錄,若是不存在,則始終爲false。

  判斷文件是不是爲隱藏文件:isHidden() 是不是一個隱藏的文件或是不是隱藏的目錄。

  判斷文件路徑是否爲絕對路徑:isAbsolute() 測試此抽象路徑名是否爲絕對路徑名。

三、獲取方法

  獲取目錄下全部的子文件和字目錄:listFiles()

  獲取文件名:getName() 獲取文件或文件夾的名稱,不包含上級路徑。

  獲取文件路徑:getPath()       返回絕對路徑,能夠是相對路徑,可是目錄要指定

  獲取文件絕對路徑:getAbsolutePath() 獲取文件的絕對路徑,與文件是否存在不要緊

  獲取文件路徑:length() 獲取文件的大小(字節數),若是文件不存在則返回0L,若是是文件夾也返回0L。

  獲取文件父路徑: getParent() 返回此抽象路徑名父目錄的路徑名字符串;若是此路徑名沒有指定父目錄,則返回null。

  獲取文件最後修改的時間:lastModified() 獲取最後一次被修改的時間。

四、刪除方法

  刪除方法:delete() 刪除文件或一個空文件夾,若是是文件夾且不爲空,則不能刪除,成功返回true,失敗返回false。

  終止時刪除方法:deleteOnExit() 在虛擬機終止時,請求刪除此抽象路徑名錶示的文件或目錄,保證程序異常時建立的臨時文件也能夠被刪除

4、使用案例

  刪除一個文件下全部的文件:

  思路:若是是文件則直接刪除,若是是文件夾,則遍歷該文件夾,而後刪除其中的文件。

public static boolean deleteDirectory(String filePath) {
        File file = new File(filePath);
                
        if(file.isFile()) {
            file.delete();
        } else if(file.isDirectory()) {
            File[] fs = file.listFiles();
            for(File f : fs) {
                deleteDirectory(f);
            }            
        }
        
        file.delete();
        
        return true;
    }
相關文章
相關標籤/搜索