1. 程式人生 > 實用技巧 >File類&遞迴&FileFilter

File類&遞迴&FileFilter

基礎題

練習一:相對路徑和絕對路徑的使用

描述:建立兩個檔案物件,分別使用相對路徑和絕對路徑建立。

答案

操作步驟:

絕對路徑建立檔案物件:使用File類一個引數的構造方法。

相對路徑建立檔案物件:使用File類兩個引數的構造方法。

程式碼:

public class Test01_01 {

public static void main(String[] args) {

// 建立檔案物件:絕對路徑

File f1 = new File("d:/aaa/a.txt");

// 建立檔案物件:相對路徑

File f2 = new File("a.txt");

}

}

練習二:檢查檔案是否存在
,檔案的建立

描述:檢查D盤下是否存在檔案a.txt,如果不存在則建立該檔案。

答案

操作步驟:

  1. 使用絕對路徑建立物件關聯到D盤的a.txt
  2. 通過檔案物件方法判斷檔案是否存在。
  3. 不存在則呼叫建立檔案的方法建立檔案。

程式碼:

public class Test01_02 {

public static void main(String[] args) throws IOException{

// 建立檔案物件:絕對路徑

File f = new File("d:/a.txt");

// 如果檔案不存在,則建立檔案

if(!f.exists()) {

f.createNewFile();

}

}

}

練習三:單級資料夾的建立

描述:D盤下建立一個名為bbb的資料夾。

答案

操作步驟:

  1. 建立檔案物件指定路徑為d:/bbb
  2. 呼叫檔案物件建立資料夾的方法

程式碼:

public class Test01_03 {

public static void main(String[] args) {

// 建立檔案物件

File f = new File("d:/bbb");

// 建立單級資料夾

f.mkdir();

}

}

練習四:多級資料夾的建立

描述:D盤下建立一個名為ccc的資料夾,要求如下:

1.ccc資料夾中要求包含bbb子資料夾

2.bbb子資料夾要求包含aaa資料夾

答案:

操作步驟:

  1. 建立檔案物件關聯路徑:d:/ccc/bbb/aaa
  2. 呼叫檔案物件建立多級資料夾的方法

程式碼:

public class Test01_04 {

public static void main(String[] args) {

// 建立檔案物件

File f = new File("d:/ccc/bbb/aaa");

// 建立多級資料夾

f.mkdirs();

}

}

  

練習五:刪除檔案和資料夾

描述:

D盤下a.txt檔案刪除

D盤下aaa資料夾刪除,要求資料夾aaa是一個空資料夾。

答案:

操作步驟:

  1. 建立檔案物件關聯路徑:d:/a.txt
  2. 呼叫檔案物件刪除檔案的方法
  3. 建立檔案物件關聯路徑:d:/aaa
  4. 呼叫檔案物件刪除資料夾的方法

程式碼:

public class Test01_05 {

public static void main(String[] args) {

// 建立檔案物件

File f = new File("d:/a.txt");

// 刪除檔案

f.delete();

 

// 建立資料夾物件

File dir = new File("d:/aaa");

// 刪除資料夾

dir.delete();

}

}

  

練習六:獲取檔案資訊:檔名,檔案大小,檔案的絕對路徑,檔案的父路徑

描述:

獲取Daaa資料夾中b.txt檔案的檔名,檔案大小,檔案的絕對路徑和父路徑等資訊,並將資訊輸出在控制檯。

答案:

操作步驟:

  1. Daaa資料夾中建立一個b.txt檔案並輸入資料
  2. 建立檔案物件關聯路徑:d:/aaa/b.txt
  3. 呼叫檔案物件的相關方法獲得資訊並輸出。可以通過API幫助文件查詢方法。

程式碼:

public class Test01_06 {

public static void main(String[] args) {

// 建立檔案物件

File f = new File("d:/aaa/b.txt");

// 獲得檔名

String filename = f.getName();

// 獲得檔案大小

longfilesize = f.length();

// 獲得檔案的絕對路徑

String path = f.getAbsolutePath();

// 獲得父資料夾路徑,返回字串

String parentPath = f.getParent();

// 獲得父資料夾路徑,返回檔案物件

File parentFile = f.getParentFile();

// 輸出資訊

System.out.println("檔名:" + filename);

System.out.println("檔案大小:" + filesize);

System.out.println("檔案路徑:" + path);

System.out.println("檔案父路徑:" + parentPath);

System.out.println("檔案父路徑:" + parentFile);

}

}

練習七:資料夾或檔案的判斷

描述:

1.判斷File物件是否是檔案,是檔案則輸出:xxx是一個檔案,否則輸出:xxx不是一個檔案。

2.判斷File物件是否是資料夾,是資料夾則輸出:xxx是一個資料夾,否則輸出:xxx不是一個資料夾。(xxx是檔名或資料夾名)

答案:

操作步驟:

  1. 建立兩個檔案物件分別關聯到不同的檔案,比如:d:/a.txtd:/aaa
  2. 呼叫檔案物件的判斷是否是檔案或是否是資料夾的方法
  3. 獲得檔名,根據判斷結果輸出資訊。

程式碼:

public class Test01_07 {

public static void main(String[] args) {

// 建立檔案物件

File f1 = new File("d:/b.txt");

// 判斷是否是一個檔案

if(f1.isFile()) {

System.out.println(f1.getName()+"是一個檔案");

}  else {

System.out.println(f1.getName()+"不是一個檔案");

}

// 建立檔案物件

File f2 = new File("d:/aaaa");

// 判斷是否是一個資料夾

if(f2.isDirectory()) {

System.out.println(f2.getName()+"是一個資料夾");

}  else {

System.out.println(f2.getName()+"不是一個資料夾");

}

}

}

練習八:資料夾的獲取方法

描述:

獲取指定資料夾下所有的檔案,並將所有檔案的名字輸出到控制檯。

注意:不包含子資料夾下的檔案

答案

操作步驟:

  1. 建立檔案物件關聯到指定資料夾,比如:c:/aaa
  2. 呼叫檔案物件的listFiles方法獲得檔案陣列
  3. 遍歷檔案陣列將每一個檔案的名字輸出到控制檯

程式碼:

public class Test01_08 {

public static void main(String[] args) {

// 建立檔案物件

File f = new File("d:/aaa");

// 獲得資料夾下所有檔案

File[] files = f.listFiles();

// 遍歷檔案陣列

for (File file :files) {

// 將檔案的名字列印到控制檯

System.out.println(file.getName());

}

}