java File類的操作及案例

File類

方法
1.構造方法

獲取 File 類有三種形式:

1. File(String pathName); 	根據當前路徑獲取File對象,可以是
文件,也可以是文件夾。
2. File(String parent, String child);	 根據對應的父文件路徑,
以及子文件或子文件夾名創建對應的 File 對象。
3. File(File parent, String child); 	根據對應的父目錄文件夾
File類對象,以及子文件 名或者子文件夾名,創建對應File 
//獲取E盤創建文件文件夾下的bbb
File file = new File("E:/創建文件/bbb");
//獲取E盤創建文件文件夾下aaa 文件夾下的 1.txt
File file2 = new File("E:/創建文件/aaa", "1.txt");
//獲取E盤創建文件文件夾下的bbb文件夾中的 bbb
File file3 = new File(file, "bbb");
2.創建方法
1. boolean createNewFile(); 	創建普通文件,創建成功返回true,失敗返回false
2. boolean mkdir(); 		創建文件夾,創建成功返回true,失敗返回false
//第一種獲取File對象方式
File file = new File("E:/創建文件/bbb");
// 第三中獲取方式
File file3 = new File(file, "bbb");
//在 E:/創建文件/bbb 目錄下創建 bbb 文件夾
System.out.println(file3.mkdir());
/*
*	在 E:/創建文件/bbb 目錄下創建 bbb 文件
*	System.out.println(file3.createNewFile());
*/
3.刪除方法
1. boolean delete(); 	通過File類對象調用,刪除對應的文件或者文件夾 
2. void deleteOnExit(); 	程序退出時刪除對應的文件或者文件夾

注意:

  1. 刪除的文件或者文件夾都是直接抹除數據並非放入回收站內
  2. 不能刪除非空的文件夾
4.判斷文件屬性
方法 作用
boolean isFile(); 判斷是否是一個普通文件
boolean isDirctory(); 判斷是否是一個文件夾
boolean isAbsolute(); 判斷是否使用了絕對路徑
boolean isHidden(); 判斷是否是隱藏文件
boolean exists(); 判斷文件是否存在
5.獲取文件屬性
方法 作用
String getPath(); 獲取File類對象保存的路徑
String getName(); 獲取當前File類對象中保存的文件名或者文件夾名
String getParent(); 獲取當前File類對象對應文件或者文件夾的父目錄路徑
String getAbsolutePath(); 獲取當File類對象對應文件或者文件夾的絕對路徑
long lastModified() 獲取文件的最後一次修改時間
long length(); 獲取文件的大小,佔用硬盤空間字節數

以上方法的前4個方法哪怕對應文件不存在也不會報錯

列表方法
方法 作用
static File[] listRoots(); 獲 取當前電腦內所有根盤符對象 (針對windows操縱系統)
File[] listFiles(); 當前File類對象對應文件夾 下的所有子文件或者子文件夾
String[] list(); 當前File類對象對應文件夾 下的所有子文件或者子文件夾的String類型文件名或者文件 夾名字

假設我的E盤創建文件文件夾下有一個bbb文件。

File file = new File("E:/創建文件");
String[] listFiles = file.list();
for (String files : listFiles) {
	//此處只輸出文件名 如 bbb(路徑E:/創建文件/bbb)
	System.out.println(files);
}
File[] listFiles2 = file.listFiles();
for (File files : listFiles2) {
	//此處輸出E:\創建文件\bbb
	System.out.println(files);
}
案例

如果在某路徑下有一堆文件,現在讓你將這些文件進行分類(比如txt文件,放在TXT文件夾下;ppt文件放在PPT文件夾下…)

代碼
// 目標文件夾的File類對象
  File file = new File("E\\創建文件");
  
  // 需要創建的文件夾類對象
  File toBeCreateDir = null;
  
  // 判斷是否是文件夾
  if (!file.isDirectory()) {
  	 return;
  }
  
  // 當前文件夾已經歸檔完成,不需要再次歸檔
  if(new File(file, "1.lock").exists()) {
	 System.out.println("已經歸檔完成");
	 return;
  }
  
  // 當前文件夾下的所有子文件和子文件夾的File類對象數組
  File[] listFiles = file.listFiles();
  
  // 遍歷File類對象數組
  for (File srcFile : listFiles) {
	// 如果是普通文件,獲取文件後綴名
	if (srcFile.isFile()) {
	 String fileName = srcFile.getName();
	 /
	 *	substing(int i);截取從i位置開始的字符串
	 *	lastIndexOf(int ch) 字符最後出現的位置
	 *	toUpperCase();轉爲大寫字符
	 */
	 String upperSuffix = fileName.substring(fileName.lastIndexOf('.') + 1)
	   .toUpperCase();
	 toBeCreateDir = new File(file, upperSuffix);
	} else {
	 toBeCreateDir = new File(file, "subDir");  
  	}
	  
	// 創建文件夾
	toBeCreateDir.mkdir();
	  
	// 移動文件或者文件夾
	srcFile.renameTo(new File(toBeCreateDir, srcFile.getName()));
  }
	 
	 // 創建一個鎖文件
	 new File(file, "1.lock").createNewFile();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章