概述 java.io.File 類是文件和目錄路徑名的抽象表示,主要用於文件和目錄的創建、查找和刪除等操作。 構造方法 1.public File(String pathname) :通過將給定的路徑名獲得File對象 2.public File(String parent, String chil ...
概述
java.io.File 類是文件和目錄路徑名的抽象表示,主要用於文件和目錄的創建、查找和刪除等操作。
構造方法
1.public File(String pathname) :通過將給定的路徑名獲得File對象
2.public File(String parent, String child) :從父路徑名字元串和子路徑名獲得File對象。
3.public File(File parent, String child) :從父抽象路徑名和子路徑名獲得File對象。
1 package demosummary.file;
2
3 import java.io.File;
4
5 /**
6 * public File(String pathname) :通過將給定的路徑名獲得File對象
7 * public File(String parent, String child) :從父路徑名字元串和子路徑名獲得File對象
8 * public File(File parent, String child) :從父抽象路徑名和子路徑名獲得File對象
9 */
10 public class FileDemo1 {
11 public static void main(String[] args) {
12 //public File(String pathname) :通過將給定的路徑名獲得File對象
13 String pathname = "d:\\a.txt";
14 File file = new File(pathname);
15
16 //public File(String parent, String child) :從父路徑名字元串和子路徑名獲得File對象
17 String parent = "d:\\a";
18 String child = "a.txt";
19 File file1 = new File(parent, child);
20
21 //public File(File parent, String child) :從父抽象路徑名和子路徑名獲得File對象
22 File parentDir = new File("d:\\a");
23 String child1 = "a.txt";
24 File file2 = new File(parentDir, child1);
25 }
26 }
備註:
1. 一個File對象代表硬碟中實際存在的一個文件或者目錄。
2. 無論該路徑下是否存在文件或者目錄,都不影響File對象的創建。
絕對路徑和相對路徑(最開始已瞭解,再次複習)
絕對路徑:從盤符開始的路徑,這是一個完整的路徑。
相對路徑:相對於項目目錄的路徑,這是一個便捷的路徑,開發中經常使用。
文件創建和刪除方法
1.public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。
2.public boolean delete() :刪除由此File表示的文件或目錄。
3.public boolean mkdir() :創建由此File表示的目錄。
4.public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。
1 package demosummary.file;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 /**
7 * 1.public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。
8 *
9 * 2.public boolean mkdir() :創建由此File表示的目錄。
10 *
11 * 3.public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。
12 *
13 * 4.public boolean delete() :刪除由此File表示的文件或目錄。
14 */
15 public class FileCreat {
16 public static void main(String[] args) throws IOException {
17 //1.public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。
18 File file = new File("a.txt");
19 System.out.println("是否創建文件:"+file.createNewFile());
20
21 //2.public boolean mkdir() :創建由此File表示的目錄。
22 File file1 = new File("newDir");
23 System.out.println("是否創建目錄:"+file1.mkdir());
24
25 //3.public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。
26 File file2 = new File("newDir\\newDir");
27 System.out.println("是否創建多級目錄:"+file2.mkdirs());
28
29 //4.public boolean delete() :刪除由此File表示的文件或目錄。
30 System.out.println("是否刪除文件:"+file.delete());
31 System.out.println("是否刪除目錄:"+file2.delete());
32 //delete方法,如果此File表示目錄,則目錄必須為空才能刪除
33 }
34 }
常用方法
1.public String getAbsolutePath() :返回此File的絕對路徑名字元串。
2.public String getPath() :將此File轉換為路徑名字元串。
3.public String getName() :返回由此File表示的文件或目錄的名稱。
4.public long length() :返回由此File表示的文件的長度。
1 package demosummary.file.fileresources;
2
3 import java.io.File;
4
5 /**
6 * public String getAbsolutePath() :返回此File的絕對路徑名字元串。
7 *
8 * public String getPath() :將此File轉換為路徑名字元串。
9 *
10 * public String getName() :返回由此File表示的文件或目錄的名稱。
11 *
12 * public long length() :返回由此File表示的文件的長度。
13 */
14 public class FileDemo2 {
15 public static void main(String[] args) {
16 File file = new File("d:\\1.txt");
17 System.out.println("文件的絕對路徑:"+file.getAbsolutePath());
18 System.out.println("文件的構造路徑:"+file.getParent());
19 System.out.println("文件名:"+file.getName());
20 System.out.println("文件的長度:"+file.length());
21 /**
22 * 輸出結果
23 * 文件的絕對路徑:d:\1.txt
24 * 文件的構造路徑:d:\
25 * 文件名:1.txt
26 * 文件的長度:15
27 */
28 }
29 }
length(),表示文件的長度。但是File對象表示目錄,則返回值未指定
文件或目錄的判斷方法
1.public boolean exists() :此File表示的文件或目錄是否實際存在。
2.public boolean isDirectory() :此File表示的是否為目錄。
3.public boolean isFile() :此File表示的是否為文件。
1 package demosummary.file;
2
3 import java.io.File;
4
5 /**
6 * 1.public boolean exists() :此File表示的文件或目錄是否實際存在。
7 *
8 * 2.public boolean isDirectory() :此File表示的是否為目錄。
9 *
10 * 3.public boolean isFile() :此File表示的是否為文件。
11 */
12 public class FileDetermine {
13 public static void main(String[] args) {
14 File file = new File("d://1.txt");
15 File file1 = new File("d://1.txt");
16 File file2 = new File("d://Download");
17 System.out.println("文件或目錄是否存在:"+file.exists());
18 System.out.println("是否為文件:"+file1.isFile());
19 System.out.println("是否為目錄:"+file2.isDirectory());
20 /**
21 * 輸出結果
22 * 文件或目錄是否存在:true
23 * 是否為文件:true
24 * 是否為目錄:true
25 */
26
27 }
28 }
目錄的遍歷
1.public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
2.public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。
1 package demosummary.file;
2
3 import java.io.File;
4
5 /**
6 * 1.public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
7 * 2.public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。
8 */
9 public class FileIterate {
10 public static void main(String[] args) {
11 //1.public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
12 File dir = new File(".//src//demosummary//file");
13 String[] list = dir.list();
14 for (String s : list) {
15 System.out.println(s);
16 }
17
18 System.out.println("--------分割線--------");
19
20 //2.public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。
21 File[] files = dir.listFiles();
22 for (File file : files) {
23 System.out.println(file);
24 }
25
26 /**
27 * 輸出結果
28 * a.txt
29 * FileCreat.java
30 * FileDemo1.java
31 * FileDemo2.java
32 * FileDetermine.java
33 * FileIterate.java
34 * fileresources
35 * --------分割線--------
36 * .\src\demosummary\file\a.txt
37 * .\src\demosummary\file\FileCreat.java
38 * .\src\demosummary\file\FileDemo1.java
39 * .\src\demosummary\file\FileDemo2.java
40 * .\src\demosummary\file\FileDetermine.java
41 * .\src\demosummary\file\FileIterate.java
42 * .\src\demosummary\file\fileresources
43 */
44 }
45 }
1 package demosummary.file;
2
3 import java.io.File;
4
5 /**
6 * 1.public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
7 * 2.public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。
8 */
9 public class FileIterate {
10 public static void main(String[] args) {
11 //1.public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
12 File dir = new File(".//src//demosummary//file");
13 String[] list = dir.list();
14 for (String s : list) {
15 System.out.println(s);
16 }
17
18 System.out.println("--------分割線--------");
19
20 //2.public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄。
21 File[] files = dir.listFiles();
22 for (File file : files) {
23 System.out.println(file);
24 }
25
26 /**
27 * 輸出結果
28 * a.txt
29 * FileCreat.java
30 * FileDemo1.java
31 * FileDemo2.java
32 * FileDetermine.java
33 * FileIterate.java
34 * fileresources
35 * --------分割線--------
36 * .\src\demosummary\file\a.txt
37 * .\src\demosummary\file\FileCreat.java
38 * .\src\demosummary\file\FileDemo1.java
39 * .\src\demosummary\file\FileDemo2.java
40 * .\src\demosummary\file\FileDetermine.java
41 * .\src\demosummary\file\FileIterate.java
42 * .\src\demosummary\file\fileresources
43 */
44 }
45 }
調用listFiles方法的File對象,表示的必須是實際存在的目錄,否則返回null,無法進行遍歷。