Java File類的瞭解與認識

內容先覽

  • File類的介紹
  • File類的構造方法
  • File類的常用方法
  • File類的總結

File類的介紹

  • 代表物理盤符中的一個文件或者文件夾
  • 是Object類的直接子類,說明本身就是個頂級類
  • 實現了Serializable序列化結構
  • 實現了Comparable排序接口
  • 在UNIX平臺上,一個絕對路徑名的前綴總是"/"。相對路徑名沒有前綴。抽象路徑名錶示根目錄有前綴"/"和空名序列
  • 微軟的Windows平臺,一個路徑名包含驅動器說明符由盤符依次":“可能隨後”\"如果路徑名是絕對的前綴。也可用’/’
  • 這裏使用’/'統一
  • 一系列對文件的操作,包括訪問權限,是否是目錄,添加刪除等等。

File類的構造方法

File(File parent, String child) 
創建從一個家長的抽象路徑名和一個孩子的路徑字符串的新 File實例。  
File(String pathname) 
通過將給定的路徑名的字符串轉換成一個抽象路徑名創建一個新的 File實例。 
File(URI uri) 
通過將給定的 file: URI到一個抽象路徑名創建一個新的 File實例。  
public class Test{
	public static void main(String[] args){
		File file = new File("c:/src/target.txt");
		
		File file1 = new File("c://src","target.txt");
		
		File parent = new File("d:");
		File file2 = new File(parent,"target.txt");			
	}
}

File常用方法

boolean canExecute() 
測試應用程序是否可執行文件的路徑名錶示的抽象。  
boolean canRead() 
檢查應用程序是否可以讀取文件的抽象路徑名記。  
boolean canWrite() 
檢查應用程序是否可以修改文件的抽象路徑名記。  
int compareTo(File pathname) 
比較兩個抽象路徑名的字典。  
boolean delete() 
刪除文件或目錄的路徑名錶示的抽象。  
void deleteOnExit() 
請求的文件或者目錄的抽象路徑名記被刪除時,虛擬機終止。  
boolean equals(Object obj) 
測試這個抽象路徑名與給定對象的平等。  
boolean exists() 
檢查文件或目錄是否存在這種抽象路徑名記。  
File getAbsoluteFile() 
返回此抽象路徑名的絕對形式。  
String getAbsolutePath() 
返回此抽象路徑名的絕對路徑名的字符串。  
String getName() 
返回的名稱的文件或目錄的路徑名錶示的抽象。  
String getParent() 
返回此抽象路徑名的父路徑名的字符串,或 null如果路徑名不叫父目錄。  
File getParentFile() 
返回此抽象路徑名的母抽象路徑名,路徑名或 null如果這不叫父目錄。  
String getPath() 
轉換這個抽象路徑名爲路徑名的字符串。  
boolean isAbsolute() 
測試是否這個抽象路徑名是絕對的。  
boolean isDirectory() 
測試文件是否通過這種抽象路徑名錶示是一個目錄。  
boolean isFile() 
測試文件是否通過這種抽象路徑名錶示的是一種正常的文件。  
boolean isHidden() 
測試文件是否通過這種抽象路徑名的命名是隱藏文件。  
long lastModified() 
返回文件的抽象路徑名錶示上次修改時間。  
long length() 
返回文件的抽象路徑名錶示的長度。  
String[] list() 
返回的字符串在該目錄下的抽象路徑名的文件和目錄命名爲數組。  
String[] list(FilenameFilter filter) 
返回的字符串在該目錄下的抽象路徑名,滿足指定的過濾器表示文件和目錄命名數組。  
File[] listFiles() 
返回表示抽象路徑名的目錄中的文件的路徑名錶示抽象的數組。  
File[] listFiles(FileFilter filter) 
返回表示的抽象路徑名的文件和目錄的目錄,這個抽象路徑名滿足指定過濾器表示數組。  
File[] listFiles(FilenameFilter filter) 
返回表示的抽象路徑名的文件和目錄的目錄,這個抽象路徑名滿足指定過濾器表示數組。  
static File[] listRoots() 
列出可用的文件系統根。  
boolean mkdir() 
創建該目錄下的抽象路徑名命名。  
boolean mkdirs() 
創建該目錄下的抽象路徑名命名,包括任何必要的但不存在父目錄。  
boolean renameTo(File dest) 
重命名文件的抽象路徑名記。  

使用示例

public class TestFile {
	public static void main(String[] args) throws Exception {
		//File f = new File("src/txt/char.txt");
		File f1 = new File("src/txt");
		//System.out.println(f.canExecute());//所有可以打開的文件或文件夾,都是可執行的!
		//System.out.println(f.canWrite());//支持你編輯
		//System.out.println(f.canRead());//判斷是否可讀
		//System.out.println(f.isDirectory());//判斷是否是文件夾
		//System.out.println(f.createNewFile());// 新建一個文件如果不存在時
		//System.out.println(f.delete());
		//f.deleteOnExit();//虛擬機終止時請求刪除路徑名錶示的文件或目錄
		//System.out.println(f.getAbsolutePath());//絕對路徑
		//System.out.println(f.getPath());
		//System.out.println(f.getName());// 文件名 名字 . 後綴
		//System.out.println(f.getFreeSpace()/1024/1024/1024 + "GB"); //獲取硬盤空閒空間
		//System.out.println(f.getTotalSpace()/1024/1024/1024 + "GB"); // 總空間
		//System.out.println(f.getParent());// 指定文件上級目錄
		//System.out.println(f.isDirectory()+"目錄:"
		//		+ f.isFile() + "文件:"
		//		+ f.isHidden() + "是否是一個隱藏文件"
		//		+ f.exists()+"是否存在");
		//System.out.println((System.currentTimeMillis()-f.lastModified())/1000/60);//返回最後一次修改時間
		//System.out.println(f.length());
		// mkdir
		// mkdirs // 只能創建目錄
		//f.renameTo(f1);
		
		// String[] fileNames = f1.list(); 只是那名字
		File[] f3 =  f1.listFiles();//
		// 過濾器
		f1.listFiles(new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				// TODO Auto-generated method stub
				if(pathname.isFile() && pathname.getName().endsWith(".txt")) {
					return true;
				}
				return false;
			}
		});
		// lambda表達式
		File[] f4 = f1.listFiles(((dir,name)->name.endsWith(".txt") || new File(name).isDirectory()));
		for (File file : f4) {
			System.out.println(file.getName());
		}
		/*
		 * for (File file : f3) {
		 * 
		 * if(file.getName().substring(file.getName().length()-4).equals(".txt") ) {
		 * System.out.println(file.getName()+":"+file.isFile()); }
		 * 
		 * }
		 */
	}
	
}

File總結

File類在使用對文件信息的查詢、對文件權限、文件大小、文件遍歷、文件/文件夾創建與刪除十分有用,其與I/O框架的結合十分緊密進行許多功能的操作,譬如說上傳文件等功能。建議多寫寫其方法。扒扒API

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章