【Java】File類

love_Aym發表於2018-04-12

一、概述

* File更應該叫做一個路徑, 檔案路徑或者資料夾路徑 

* 路徑分為絕對路徑和相對路徑

        * 絕對路徑是一個固定的路徑,從碟符開始

        * 相對路徑相對於某個位置,在eclipse下是指當前專案下,在dos下

* 檢視API指的是當前路徑

 * 檔案和目錄路徑名的抽象表示形式

* 字串中的需要//來表示分隔符,因為一個/為轉義符

二、構造方法

1、File(Stringpathname):根據一個路徑建立得到File物件,絕對/相對路徑

2、File(Stringparent, String child):根據一個目錄(資料夾)和一個子檔案/目錄得到File物件,父級路徑+子級路徑

3、File(Fileparent, String child):根據一個父File物件和一個子檔案/目錄得到File物件,將父級路徑封裝成一個File物件


三、File類的建立功能

* public boolean createNewFile():檔案如果不存在,則建立並返回true,如果存在這樣的檔案,就不建立了返回 false

* public boolean mkdir():建立單個資料夾返回true,如果存在這樣的資料夾,就不建立了返回false

 * public boolean mkdirs():建立多級資料夾,如果父資料夾不存在,會幫你建立出來


* 注意事項:

如果你建立檔案或者資料夾忘了寫碟符路徑,那麼,預設在專案路徑下。


四、File類的重新命名和刪除功能

1、public boolean renameTo(File dest):把檔案重新命名為指定的檔案路徑,

File dest為目標檔案路徑(名字)

    * 如果路徑名相同,就是改名。

    * 如果路徑名不同,就是改名並剪下。

2、public boolean delete():刪除檔案或者資料夾

    * Java中的刪除不走回收站。不可撤回。要小心。

    * 要刪除一個資料夾,請注意該資料夾內不能包含檔案或者資料夾,必須是空的


五、File類的判斷功能

 * public boolean isDirectory():判斷是否是目錄(資料夾)

* public boolean isFile():判斷是否是檔案

* public boolean exists():判斷是否存在

* public booleancanRead():判斷是否可讀

    設定是否可讀:setReadable(boolean);

    注意:windows系統認為所有的檔案都是可讀的,設定不起作用。在LINUX下,如果設為不可讀則為不可讀

* public boolean canWrite():判斷是否可寫

    設定是都可寫:setWriteable(boolean);

    注意:windows系統可以設定為不可寫

* publicboolean isHidden():判斷是否隱藏


六、File類的獲取功能

    * public String getAbsolutePath():獲取絕對路徑

    * public String getPath():獲取路徑,獲取構造方法裡的路徑,跟建立時傳入的路徑有關

    * public String getName():獲取檔案或者資料夾的名稱

    * public long length():獲取檔案的長度。位元組數

    * public long lastModified():獲取最後一次的修改時間,毫秒值。

        注意:可以使用毫秒值建立Date物件,使用SimpleDateFormat日期進行格式化。

        Date d = new Date(file1.lastModified());				//檔案的最後修改時間
	SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
	System.out.println(sdf.format(d));

    * public String[] list():獲取指定目錄下的所有檔案或者資料夾的名稱陣列,僅為了獲取檔名

    * public File[] listFiles():獲取指定目錄下的所有檔案或者資料夾的File陣列,獲取檔案物件,File類重寫了toString()方法。


七、練習

判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔名稱


import java.io.FilenameFilter;
public class Test3 {
	/**
	 * @param args
	 * * A:案例演示
	 * 需求:判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔名稱
	 */
	public static void main(String[] args) {
		File dir = new File("E:\\");
		
//		String[] arr = dir.list();					//獲取e盤下所有的檔案或資料夾
//		for (String string : arr) {
//			if(string.endsWith(".jpg")) {
//				System.out.println(string);
//			}
//		}
		
		/*File[] subFiles = dir.listFiles();			//獲取e盤下所有的檔案或資料夾物件
		
		for (File subFile : subFiles) {
			if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
				System.out.println(subFile);
			}
		}*/		
	}
}
注意:如果想判斷E盤下資料夾中jpg檔案,需要用到遞迴思想 ,後期學習。












相關文章