File類操做

File類的增刪改查介紹 java

                 
  1. package com.io.file;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5.   
  6. public class File_1 {  
  7.     public static void main(String[] args) throws IOException, InterruptedException {  
  8.         //mehtod_file();//File類的幾種建立方式   
  9.         //file_create();//建立文件   
  10.         //file_delete();//刪除文件   
  11.         //file_judge();//判斷文件   
  12.         //file_get();//獲取File封裝對象內容   
  13.         file_renameTo();  
  14.     }  
  15.     /* 
  16.      * 修改文件名稱 
  17.      * 剪切文件,並粘貼文件 
  18.      */  
  19.     public static void file_renameTo(){  
  20.         //實現文件剪切功能   
  21. //      File f=new File("g:/java/aa.txt");   
  22. //      File ff=new File("d:/bbb.txt");//注意:這裏不能帶文件夾;f封裝的路徑中的文件會被刪除,ff封裝的路徑中的文件會被建立   
  23. //      System.out.println(f.renameTo(ff));   
  24.         //文件更名   
  25.         File f1=new File("g:/java/aa.txt");  
  26.         File f2=new File("g:/java/bb.txt");//注意:這裏不能帶文件夾;f封裝的路徑中的文件會被刪除,ff封裝的路徑中的文件會被建立   
  27.         System.out.println(f1.renameTo(f2));  
  28.     }  
  29.       
  30.     /* 
  31.      * 獲取文件信息 
  32.      */  
  33.     public static void file_get(){  
  34.         File f=new File("g:/java/yes.txt");  
  35.         System.out.println("getPath():"+f.getPath());//無論該文件是否存在,就是獲取File對象封裝的路徑內容   
  36.         System.out.println("getAbsolute()"+f.getAbsolutePath());//無論該文件是否存在,獲取File對象封裝的絕對路徑   
  37.         System.out.println("getName():"+f.getName());//獲取File對象封裝的文件名稱,包括後綴名   
  38.         System.out.println("getParent():"+f.getParent());//獲取File對象封裝的文件夾路徑名,注意,該方法獲取的文件夾路徑是File對象封裝的絕對路徑才能獲取的,若是File對象封裝的是相對路徑的話,則返回null;   
  39.                                                         //若是File對象封裝的路徑有上一層目錄,則返回的目錄就是該目錄如:File f=new file("a\\b.txt");則返回a目錄   
  40.         System.out.println("lastModified():"+f.lastModified());//獲取File對象封裝的文件最後一次修改的時間   
  41.         System.out.println("length():"+f.length());//獲取File對象封裝的文件的大小,即多少個字節   
  42.     }  
  43.     /* 
  44.      * 判斷文件 
  45.      *  
  46.      */  
  47.     public static void file_judge(){  
  48.         File f=new File("g:/java/yes.txt");  
  49.         System.out.println(f.canExecute());//判斷文件是否可執行   
  50.         System.out.println(f.exists());//判斷文件是否存在   
  51.         System.out.println("-----------------------------------------");  
  52.         File ff=new File("g:/java/a/b/c/d/e/f");  
  53. //      System.out.println(ff.mkdir());//建立文件夾   
  54.         System.out.println(ff.mkdirs());//建立多級文件夾   
  55.         System.out.println("------------------------------------------");  
  56.         File fff=new File("zzzz.txt");  
  57.         //注意在判斷是不是文件和目錄時,必定要先判斷該文件對象封裝的內容是否存在   
  58.         //用exists();判斷   
  59.         System.out.println(fff.isDirectory());//判斷是不是目錄   
  60.         System.out.println(fff.isFile());//判斷是不是文件   
  61.         System.out.println(fff.isHidden());//判斷文件是否隱藏   
  62.         System.out.println(fff.isAbsolute());//判斷文件路徑是不是絕對路徑,及時文件不存在也能夠判斷   
  63.     }  
  64.     /* 
  65.      *刪除文件 
  66.      * boolean  delete();刪除失敗是返回false 
  67.      * void     deleteOnExit();當虛擬機退出時刪除文件 
  68.      */  
  69.     public static void file_delete() throws IOException, InterruptedException{  
  70.         File f=new File("g:/java/yesaaa.txt");  
  71.         boolean boo=f.createNewFile();  
  72.         System.out.println("create:"+boo);  
  73.         Thread.sleep(5000);//能夠看到效果   
  74.         //boolean boo1=f.delete();   
  75.         f.deleteOnExit();//通常刪除臨時文件時用這個,當虛擬機關閉時,刪除文件   
  76.         //System.out.println("delete:"+boo1);   
  77.     }  
  78.     /* 
  79.      * 建立文件createNewFile(),建立指定目錄的文件,若是已存在,則返回false 
  80.      * 注意:這和輸出流不同,輸出流對象建立文件,若是文件已存在,則會覆蓋,重新建立 
  81.      */  
  82.     public static void file_create() throws IOException{  
  83.         File f=new File("g:/java/yesaaa.txt");  
  84.         boolean boo=f.createNewFile();  
  85.         System.out.println(boo);  
  86.     }  
  87.     //幾種建立File類的方式   
  88.     public static void mehtod_file(){  
  89.         File f1=new File("aa.txt");//用相對路徑   
  90.         File f2=new File("c:\\aa\\bb\\c.txt");//用絕對路徑   
  91.         File f3=new File("c:\\aa\\bb","c.txt");//文件夾路徑和文件路徑分開,便於操做   
  92.         File f4=new File("c:/aa/bb/c.txt");//注意用這個斜槓"/"一個就好了,和"\\"兩個這樣的效果是同樣的,但這樣寫不利於跨平臺   
  93.         File f5=new File("c:"+File.separator+"aa"+File.separator+"bb"+File.separator+"c.txt");//用File類中封裝的separator()方法,能夠實現跨平臺   
  94.         System.out.println(f1);  
  95.         System.out.println(f2);  
  96.         System.out.println(f3);  
  97.         System.out.println(f4);  
  98.         System.out.println(f5);  
  99.     }  
  100. }  
package com.io.file;

import java.io.File;
import java.io.IOException;

public class File_1 {
	public static void main(String[] args) throws IOException, InterruptedException {
		//mehtod_file();//File類的幾種建立方式
		//file_create();//建立文件
		//file_delete();//刪除文件
		//file_judge();//判斷文件
		//file_get();//獲取File封裝對象內容
		file_renameTo();
	}
	/*
	 * 修改文件名稱
	 * 剪切文件,並粘貼文件
	 */
	public static void file_renameTo(){
		//實現文件剪切功能
//		File f=new File("g:/java/aa.txt");
//		File ff=new File("d:/bbb.txt");//注意:這裏不能帶文件夾;f封裝的路徑中的文件會被刪除,ff封裝的路徑中的文件會被建立
//		System.out.println(f.renameTo(ff));
		//文件更名
		File f1=new File("g:/java/aa.txt");
		File f2=new File("g:/java/bb.txt");//注意:這裏不能帶文件夾;f封裝的路徑中的文件會被刪除,ff封裝的路徑中的文件會被建立
		System.out.println(f1.renameTo(f2));
	}
	
	/*
	 * 獲取文件信息
	 */
	public static void file_get(){
		File f=new File("g:/java/yes.txt");
		System.out.println("getPath():"+f.getPath());//無論該文件是否存在,就是獲取File對象封裝的路徑內容
		System.out.println("getAbsolute()"+f.getAbsolutePath());//無論該文件是否存在,獲取File對象封裝的絕對路徑
		System.out.println("getName():"+f.getName());//獲取File對象封裝的文件名稱,包括後綴名
		System.out.println("getParent():"+f.getParent());//獲取File對象封裝的文件夾路徑名,注意,該方法獲取的文件夾路徑是File對象封裝的絕對路徑才能獲取的,若是File對象封裝的是相對路徑的話,則返回null;
														//若是File對象封裝的路徑有上一層目錄,則返回的目錄就是該目錄如:File f=new file("a\\b.txt");則返回a目錄
		System.out.println("lastModified():"+f.lastModified());//獲取File對象封裝的文件最後一次修改的時間
		System.out.println("length():"+f.length());//獲取File對象封裝的文件的大小,即多少個字節
	}
	/*
	 * 判斷文件
	 * 
	 */
	public static void file_judge(){
		File f=new File("g:/java/yes.txt");
		System.out.println(f.canExecute());//判斷文件是否可執行
		System.out.println(f.exists());//判斷文件是否存在
		System.out.println("-----------------------------------------");
		File ff=new File("g:/java/a/b/c/d/e/f");
//		System.out.println(ff.mkdir());//建立文件夾
		System.out.println(ff.mkdirs());//建立多級文件夾
		System.out.println("------------------------------------------");
		File fff=new File("zzzz.txt");
		//注意在判斷是不是文件和目錄時,必定要先判斷該文件對象封裝的內容是否存在
		//用exists();判斷
		System.out.println(fff.isDirectory());//判斷是不是目錄
		System.out.println(fff.isFile());//判斷是不是文件
		System.out.println(fff.isHidden());//判斷文件是否隱藏
		System.out.println(fff.isAbsolute());//判斷文件路徑是不是絕對路徑,及時文件不存在也能夠判斷
	}
	/*
	 *刪除文件
	 * boolean 	delete();刪除失敗是返回false
	 * void 	deleteOnExit();當虛擬機退出時刪除文件
	 */
	public static void file_delete() throws IOException, InterruptedException{
		File f=new File("g:/java/yesaaa.txt");
		boolean boo=f.createNewFile();
		System.out.println("create:"+boo);
		Thread.sleep(5000);//能夠看到效果
		//boolean boo1=f.delete();
		f.deleteOnExit();//通常刪除臨時文件時用這個,當虛擬機關閉時,刪除文件
		//System.out.println("delete:"+boo1);
	}
	/*
	 * 建立文件createNewFile(),建立指定目錄的文件,若是已存在,則返回false
	 * 注意:這和輸出流不同,輸出流對象建立文件,若是文件已存在,則會覆蓋,重新建立
	 */
	public static void file_create() throws IOException{
		File f=new File("g:/java/yesaaa.txt");
		boolean boo=f.createNewFile();
		System.out.println(boo);
	}
	//幾種建立File類的方式
	public static void mehtod_file(){
		File f1=new File("aa.txt");//用相對路徑
		File f2=new File("c:\\aa\\bb\\c.txt");//用絕對路徑
		File f3=new File("c:\\aa\\bb","c.txt");//文件夾路徑和文件路徑分開,便於操做
		File f4=new File("c:/aa/bb/c.txt");//注意用這個斜槓"/"一個就好了,和"\\"兩個這樣的效果是同樣的,但這樣寫不利於跨平臺
		File f5=new File("c:"+File.separator+"aa"+File.separator+"bb"+File.separator+"c.txt");//用File類中封裝的separator()方法,能夠實現跨平臺
		System.out.println(f1);
		System.out.println(f2);
		System.out.println(f3);
		System.out.println(f4);
		System.out.println(f5);
	}
}
                                       
【有獎提問】CSDN論壇第1期專家問答開始        來極客頭條,贏下載積分        下載頻道3月領任務~賺下載分!
  1.   
  2. import java.io.File;  
  3. import java.io.FilenameFilter;  
  4.   
  5. public class File_listRoots {  
  6.     public static void main(String[] args) {  
  7.         //listRoots();//列出全部有效盤符   
  8.         //list();//列出根文件下全部文件,文件夾,及隱藏文件   
  9. //      listFilter();//文件名過濾   
  10. //      listFiles();//獲取當前目錄下File對象   
  11.         File f=new File("g:/");  
  12. //      digui(f);//遞歸調用,實現查詢目錄下全部的文件及文件夾,及文件夾中的文件   
  13.         System.out.println(digui1(8000));//遞歸調用   
  14.     }  
  15.     /* 
  16.      * 遞歸調用注意兩點: 
  17.      * 1:限定條件 
  18.      * 2:要注意遞歸次數,儘可能避免內存溢出 
  19.      */  
  20.     public static int digui1(int a){  
  21.         if(a<=1){  
  22.             return 1;  
  23.         }else{  
  24.             return a+digui1(a-1);  
  25.         }  
  26.     }  
  27.     /* 
  28.      * 列出指定目錄下文件或文件夾,包含子目錄中的內容,遍歷目錄下全部的文件。 
  29.      * 由於目錄中還有目錄,只要使用同一個列出目錄功能的函數完成便可 
  30.      * 在列出過程當中,出現的仍是目錄的話,還能夠再次調用本功能。也就是函數自身調用自身。 
  31.      * 這種表現形式或者變成手法成爲遞歸 
  32.      */  
  33.     public static void digui(File f){  
  34.         System.out.println(f.getAbsolutePath());  
  35.         File[]ff=f.listFiles();  
  36.         for (int i = 0; i < ff.length; i++) {  
  37.             if(ff[i].isDirectory()){  
  38.                 digui(ff[i]);//遞歸調用   
  39.             }else{  
  40.                 System.out.println(ff[i]);  
  41.             }  
  42.         }  
  43.     }  
  44.     /* 
  45.      * listFiles();獲取File對象 
  46.      */  
  47.     public static void listFiles(){  
  48.         File f=new File("g:/java");  
  49.         File[]ff=f.listFiles();  
  50.         for(File fff:ff){  
  51.             System.out.println(fff.getName()+"---------length:"+fff.length());  
  52.         }  
  53.     }  
  54.     /* 
  55.      * list(FileNameFilter filter),文件名過濾 
  56.      */  
  57.     public static void listFilter(){  
  58.         File f=new File("g:/java");  
  59.         String[]str=f.list(new FilenameFilter(){  
  60.             public boolean accept(File f,String name){  
  61.                   
  62.                 return name.endsWith(".txt");//返回文件及文件夾名稱以「.txt」爲結尾的文件及文件夾   
  63. //              System.out.println(f+"---------name:"+name);//f表明文件目錄,name表明文件夾名稱及文件名稱   
  64. //              return false;//返回false表示不返回   
  65. //              return true;//返回true表示返回   
  66.             }  
  67.         });  
  68.         for(String string:str){  
  69.             System.out.println(string);  
  70.         }  
  71.     }  
  72.     /* 
  73.      * //列出根文件下全部文件,文件夾,及隱藏文件 
  74.      */  
  75.     public static void list(){  
  76.         File f=new File("g:/java");//調用list()方法,該File對象必須封裝一個目錄,不能是文件,而且該目錄確實存在才行   
  77.         String[] str=f.list();  
  78.         for (String string : str) {  
  79.             System.out.println(string);  
  80.         }  
  81.     }  
  82.     /* 
  83.      * File.listRoots():獲取可用的文件系統根,簡單來講就是獲取系統的盤符 
  84.      */  
  85.     public static void listRoots(){  
  86.         File[] f=File.listRoots();  
  87.         for (File file : f) {  
  88.             System.out.println(file);  
  89.         }  
  90.         System.out.println(f[0]);  
  91.           
  92.     }  
  93. }  
package com.io.file;

import java.io.File;
import java.io.FilenameFilter;

public class File_listRoots {
	public static void main(String[] args) {
		//listRoots();//列出全部有效盤符
		//list();//列出根文件下全部文件,文件夾,及隱藏文件
//		listFilter();//文件名過濾
//		listFiles();//獲取當前目錄下File對象
		File f=new File("g:/");
//		digui(f);//遞歸調用,實現查詢目錄下全部的文件及文件夾,及文件夾中的文件
		System.out.println(digui1(8000));//遞歸調用
	}
	/*
	 * 遞歸調用注意兩點:
	 * 1:限定條件
	 * 2:要注意遞歸次數,儘可能避免內存溢出
	 */
	public static int digui1(int a){
		if(a<=1){
			return 1;
		}else{
			return a+digui1(a-1);
		}
	}
	/*
	 * 列出指定目錄下文件或文件夾,包含子目錄中的內容,遍歷目錄下全部的文件。
	 * 由於目錄中還有目錄,只要使用同一個列出目錄功能的函數完成便可
	 * 在列出過程當中,出現的仍是目錄的話,還能夠再次調用本功能。也就是函數自身調用自身。
	 * 這種表現形式或者變成手法成爲遞歸
	 */
	public static void digui(File f){
		System.out.println(f.getAbsolutePath());
		File[]ff=f.listFiles();
		for (int i = 0; i < ff.length; i++) {
			if(ff[i].isDirectory()){
				digui(ff[i]);//遞歸調用
			}else{
				System.out.println(ff[i]);
			}
		}
	}
	/*
	 * listFiles();獲取File對象
	 */
	public static void listFiles(){
		File f=new File("g:/java");
		File[]ff=f.listFiles();
		for(File fff:ff){
			System.out.println(fff.getName()+"---------length:"+fff.length());
		}
	}
	/*
	 * list(FileNameFilter filter),文件名過濾
	 */
	public static void listFilter(){
		File f=new File("g:/java");
		String[]str=f.list(new FilenameFilter(){
			public boolean accept(File f,String name){
				
				return name.endsWith(".txt");//返回文件及文件夾名稱以「.txt」爲結尾的文件及文件夾
//				System.out.println(f+"---------name:"+name);//f表明文件目錄,name表明文件夾名稱及文件名稱
//				return false;//返回false表示不返回
//				return true;//返回true表示返回
			}
		});
		for(String string:str){
			System.out.println(string);
		}
	}
	/*
	 * //列出根文件下全部文件,文件夾,及隱藏文件
	 */
	public static void list(){
		File f=new File("g:/java");//調用list()方法,該File對象必須封裝一個目錄,不能是文件,而且該目錄確實存在才行
		String[] str=f.list();
		for (String string : str) {
			System.out.println(string);
		}
	}
	/*
	 * File.listRoots():獲取可用的文件系統根,簡單來講就是獲取系統的盤符
	 */
	public static void listRoots(){
		File[] f=File.listRoots();
		for (File file : f) {
			System.out.println(file);
		}
		System.out.println(f[0]);
		
	}
}
相關文章
相關標籤/搜索