1、File類的概述
我們可以使用File類對文件和文件夾進行操作。
- 創建一個文件/文件夾
- 刪除文件/文件夾
- 獲取文件/文件夾
- 判斷文件/文件夾是否存在
- 對文件夾進行遍歷
- 獲取文件的大小
File類是一個與系統無關的類,任何操作系統都有可以使用這個類種的方法。
重點:記住三個單詞
- file:文件
- directory:文件夾
- path:路徑(用於找到文件或者文件夾的路徑)
2、File的靜態成員變量
-
pathSeparator(String) 與系統有關的路徑分隔符
在windows中,它是分號 ; 在Linux中,它是冒號 :
-
separator (String)文件名稱分隔符
windows:反斜槓 \ Linux:斜槓 /
3、絕對路徑與相對路徑
- 絕對路徑:完整的路徑,以盤符開始的路徑。
- 相對路徑:簡化的路徑,相對是指相對於當前項目的根目錄。
注意:
- 路徑不區分大小寫(疑問)艹,是真的,真的不區分大小寫
4、構造方法
-
/* File(String pathname) 通過給定路徑名字符串轉換爲抽象路徑名來創建一個新File實例 參數: 路徑可以是以文件結尾,也可以字符串結尾 路徑可以是相對路徑,也可以是絕對路徑 可以是存在的,也可是不存在的 創建File對象,只是把字符串路徑封裝爲File對象,不考慮路徑的真假情況 */ private static void show01() { File file = new File("D:\\百度雲下載\\java攻城獅"); System.out.println(file);// D:\百度雲下載\java攻城獅 說明File類重寫了toString() }
-
/* File(String parent,String child) 根據parent路徑名字符串和child路徑名字符串來創建一個新File實例。 參數:把路徑分成了兩部分 String parent:父路徑 String child:子路徑 */ private static void show02(){ File file = new File("c:\\","zhangsan.txt"); System.out.println(file); // c:\\zhangsan.text }
-
/* File(File parent,String child) 根據parent File和child路徑名字符串來創建一個新File實例。 參數:把路徑分成了兩部分 File parent:父路徑 String child:子路徑 */ private static void show02(){ File file = new File(parent,"zhangsan.txt"); //父路徑是File類型 System.out.println(file); // c:\\zhangsan.text }
5、常用方法
5.1、獲取
- String getAbsolutePath() :返回File的絕對路徑字符串(管你是絕對還是相對統統返回絕對路徑)
- String getPath() :返回你原來是啥的(絕對路徑就返回絕對路徑、相對路徑就返回相對路徑)
toString()調用的就是getPath()。 - String getName() :返回由此File表示的文件(文件)或目錄(最後一個文件夾)的名稱
- long length() :File的大小。(以Byte爲單位)
注意:文件夾是沒有大小概念的,不能獲取文件夾的大小,如果路徑不存在那麼返回0。
5.2、判斷
- boolean exists()
- boolean isDirectory()
- boolean isFile()
5.3、創建刪除
-
boolean createNewFile()
當且僅當具有該名稱的文件上不存在時,創建一個新的空文件。
-
boolean delete()
刪除此File表示的文件或目錄
/* public boolean delete():刪除由此File類表示的文件或目錄, 此方法可以刪除構造方法給出的文件或文件夾 文件/文件夾刪除成功:true 文件夾有內容,不會刪除返回false,構造方法中的路徑不存在也會返回false; 注意: delete()是直接在硬盤上刪除,不走回收站,也就是說:不能撤銷 */ private static void delete() { File file = new File("hhh"); System.out.println(file.delete()); //返回false,因爲hhh文件夾中有內容 }
-
boolean mkdir()
創建此File表示的目錄 -
boolean mkdirs()
創建由此File表示的目錄,包括任何必須但不存在的父目錄。
6、遍歷(文件夾)
/*
File類遍歷(文件夾目錄功能)
- public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄
- public File() listFiles() :返回一個File數組,表示該File目錄中的所有子文件或目錄
注意:
list方法和listFiles方法遍歷的是構造方法中給出的目錄,
如果構造方法中給出的目錄路徑不存在,會拋出空指針異常
如果構造方法給出的路徑不是一個目錄,也會拋出空指針異常
*/
隱藏的文件也能獲取到!🔏