Java基礎 第四節 第八課
File 類
概述
構造方法
代碼展示
注意事項
常用方法
獲取功能的方法
代碼展示
絕對路徑和相對路徑
代碼展示
判斷功能的方法
代碼展示
創建刪除功能的方法
代碼展示
目錄的遍歷
概述
java.io.File
類是文件和目錄路徑名的抽象, 主要用于文件和目錄的創建, 查找和刪除等操作.
構造方法
public File(String pathname): 通過將給定的路徑名字符串準換為抽象路徑名來創建新的 File 實例
public File(String parent, String child): 從父路徑名字符串和子路徑名字符串創建新的 File 實例
public File(File parent, String child): 從父抽象路徑名和子路徑名字符串創建新的 File 實例
代碼展示
import java.io.File; public class Test { public static void main(String[] args) { // 文件路徑名 String pathname = "a.txt"; File file1 = new File(pathname); // 通過父路徑和子路徑字符串 String parent = "c:/Users/Windows/Desktop"; String child1 = "b.txt"; File file2 = new File(parent, child1); // 通過父級File對象和子路徑字符串 File parentDir = new File("c:/Users/Windows/Desktop"); String child2 = "b.txt"; File file3 = new File(parentDir, child2); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
注意事項
一個 File 對象代表硬盤中實際存在的一個文件或者目錄
無論該路徑下是否存在文件或者目錄, 都不影響 File 對象的創建
常用方法
獲取功能的方法
```public String getAbsolutePath()``: 返回此 File 的絕對路徑名字符串
public String getPath(): 返回此 File 的構造路徑字符串
public String getName(): 返回由此 File 表示的文件或者目錄的名稱
public long length(): 返回由此 File 表示的文件的長度
代碼展示
import java.io.File; public class Test { public static void main(String[] args) { File f = new File("c:/Users/Windows/Desktop/d.txt"); System.out.println("文件的絕對路徑:" + f.getAbsolutePath()); System.out.println("文件的構造路徑:" + f.getPath()); System.out.println("文件名稱:" + f.getName()); System.out.println("文件長度:" + f.length()); } } 輸出結果: 文件的絕對路徑:c:\Users\Windows\Desktop\d.txt 文件的構造路徑:c:\Users\Windows\Desktop\d.txt 文件名稱:d.txt 文件長度:0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
絕對路徑和相對路徑
絕對路徑: 從盤符開始的路徑, 這是一個完整的路徑
相對路徑: 相對于項目目錄的路徑, 這是一個便捷的路徑 (開發中經常使用)
代碼展示
import java.io.File; public class Test { public static void main(String[] args) { // C盤下的a.txt文件 File f1 = new File("C:/Users/Windows/Desktop/a.txt"); System.out.println(f1.getAbsolutePath()); // 項目下的a.txt文件 File f2 = new File("a.txt"); System.out.println(f2.getAbsolutePath()); } } 輸出結果: C:\Users\Windows\Desktop\a.txt C:\Users\Windows\IdeaProjects\測試6\a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
判斷功能的方法
public boolean exists(): 此 FIle 表示的文件或目錄是否實際存在
public boolean isDirectory(): 此 File 表示的是否為目錄
public boolean isFile(): 此 FIle 表示的是否為文件
代碼展示
import java.io.File; public class Test { public static void main(String[] args) { File f1 = new File("a.txt"); File f2 = new File("b.txt") ; // 判斷是否存在 System.out.println("f1 是否存在:" + f1.exists()); System.out.println("f2 是否存在:" + f2.exists()); // 判斷是文件還是目錄 System.out.println("f1 是否是文件" + f1.isFile()); System.out.println("f1 是否是目錄" + f1.isDirectory()); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
創建刪除功能的方法
public boolean createNewFile(): 當且僅當具有該名稱的文件尚不存在時, 創建一個新的空文件
public boolean delete(): 刪除由此 File 表示的文件或目錄
public boolean mkdir(): 創建由此 File 表示的目錄
public boolean mkdirs(): 創建由此 File 表示的目錄, 包括任何必須但不存在的父目錄
代碼展示
import java.io.File; import java.io.IOException; public class Test { public static void main(String[] args) throws IOException { // 文件的創建 File f1 = new File("aaa.txt"); System.out.println("是否存在:" + f1.exists()); // false System.out.println("是否創建:" + f1.createNewFile()); // true System.out.println("是否存在:" + f1.exists()); // true // 目錄的創建 File f2 = new File("newDir"); System.out.println("是否存在:" + f2.exists()); // false System.out.println("是否創建:" + f2.mkdir()); // true System.out.println("是否存在:" + f2.exists()); // true // 創建多級目錄 File f3 = new File("newDira/newDirb"); System.out.println(f3.mkdir()); // false File f4 = new File("newDira/newDirb"); System.out.println(f4.mkdirs()); // true // 文件的刪除 System.out.println(f1.delete()); // true // 目錄的刪除 System.out.println(f2.delete()); // true System.out.println(f4.delete()); // false } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
API 中說明: delete 方法, 如果此 File 表示目錄, 則目錄刪空才能刪除.
目錄的遍歷
public String[] list(): 返回一個 String 數組, 表示該 File 目錄中的所有子文件或目錄
public File[] listFiles(): 返回一個 File 數組, 表示該 File 目錄中的所有的子文件或目錄
import java.io.File; public class Test { public static void main(String[] args) { File dir = new File("java_code"); // 獲取當前目錄下的文件夾名稱 String[] names = dir.list(); for(String name : names){ System.out.println(name); } // 獲取當前目錄下的文件以及文件夾對象, 只要拿到了文件對象, 那么就可以獲取更多信息 File[] files = dir.listFiles(); for(File file : files){ System.out.println(file); } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
注: 調用 listFiles 方法的 File 對象, 表示的必須是實際存在的目錄. 否則返回 null, 無法進行遍歷.
Java
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。