Java IO詳解(一)------File 類

File 類:文件和目錄路徑名的抽象表示。java

注意:File 類只能操做文件的屬性,文件的內容是不能操做的。數組

 

一、File 類的字段測試

 

  咱們知道,各個平臺之間的路徑分隔符是不同的。3d

  ①、對於UNIX平臺,絕對路徑名的前綴始終爲"/" 。 相對路徑名沒有前綴。 表示根目錄的抽象路徑名具備前綴"/"和空名稱序列。code

  ②、對於Microsoft Windows平臺,包含驅動器說明符的路徑名的前綴由後面跟着":"的驅動器號組成,若是路徑名是絕對的,則可能後跟"\\" 。 UNC路徑名的前綴爲"\\\\" ; 主機名和共享名稱是名稱序列中的前兩個名稱              沒有有指定驅動器的相對路徑名沒有前綴。orm

  那麼爲了屏蔽各個平臺之間的分隔符差別,咱們在構造 File 類的時候(如何構造,請看下面第二點),就可使用上述 Java 爲咱們提供的字段。blog

System.out.println(File.separator);//輸出 \   
		System.out.println(File.pathSeparator);//輸出 ;

  那麼咱們能夠看出:字符串

    File.pathSeparator指的是分隔連續多個路徑字符串的分隔符get

    File.separator是用來分隔同一個路徑字符串中的目錄的it

 

 

二、File 類的構造方法

如何使用上述構造方法,請看以下例子:

//不使用 Java 提供的分隔符字段,注意:這樣寫只能在 Windows 平臺有效
		File f1 = new File("D:\\IO\\a.txt");
		//使用 Java 提供的分隔符
		File f2 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
		System.out.println(f1);//輸出 D:\IO\a.txt   
		System.out.println(f2);//輸出 D:\IO\a.txt
		
		//File(File parent, String child) 
		//從父抽象路徑名和子路徑名字符串建立新的 File實例。
		File f3 = new File("D:");
		File f4 = new File(f3,"IO");
		System.out.println(f4); //D:\IO
		
		//File(String pathname) 
		//經過將給定的路徑名字符串轉換爲抽象路徑名來建立新的 File實例。 
		File f5 = new File("D:"+File.separator+"IO"+File.separator+"a.txt");
		System.out.println(f5); //D:\IO\a.txt
		
		//File(String parent, String child) 
		//從父路徑名字符串和子路徑名字符串建立新的 File實例。 
		File f6 = new File("D:","IO\\a.txt");
		System.out.println(f6); //D:\IO\a.txt

  

 

三、File 類的經常使用方法

  ①、建立方法

    1.boolean createNewFile() 不存在返回true 存在返回false
    2.boolean mkdir() 建立目錄,若是上一級目錄不存在,則會建立失敗
    3.boolean mkdirs() 建立多級目錄,若是上一級目錄不存在也會自動建立

 

  ②、刪除方法

    1.boolean delete() 刪除文件或目錄,若是表示目錄,則目錄下必須爲空才能刪除
    2.boolean deleteOnExit() 文件使用完成後刪除

 

  ③、判斷方法

    1.boolean canExecute()判斷文件是否可執行
    2.boolean canRead()判斷文件是否可讀
    3.boolean canWrite() 判斷文件是否可寫
    4.boolean exists() 判斷文件或目錄是否存在
    5.boolean isDirectory()  判斷此路徑是否爲一個目錄
    6.boolean isFile()  判斷是否爲一個文件
    7.boolean isHidden()  判斷是否爲隱藏文件
    8.boolean isAbsolute()判斷是不是絕對路徑 文件不存在也能判斷

 

   ④、獲取方法

    1.String getName() 獲取此路徑表示的文件或目錄名稱
    2.String getPath() 將此路徑名轉換爲路徑名字符串
    3.String getAbsolutePath() 返回此抽象路徑名的絕對形式
    4.String getParent()//若是沒有父目錄返回null
    5.long lastModified()//獲取最後一次修改的時間
    6.long length() 返回由此抽象路徑名錶示的文件的長度。
    7.boolean renameTo(File f) 重命名由此抽象路徑名錶示的文件。
    8.File[] liseRoots()//獲取機器盤符
    9.String[] list()  返回一個字符串數組,命名由此抽象路徑名錶示的目錄中的文件和目錄。
    10.String[] list(FilenameFilter filter) 返回一個字符串數組,命名由此抽象路徑名錶示的目錄中知足指定過濾器的文件和目錄。

 

//File(File parent, String child) 
		//從父抽象路徑名和子路徑名字符串建立新的 File實例。
		File dir = new File("D:"+File.separator+"IO");
		File file = new File(dir,"a.txt");
		
		//判斷dir 是否存在且表示一個目錄
		if(!(dir.exists()||dir.isDirectory())){
			//若是 dir 不存在,則建立這個目錄
			dir.mkdirs();
			//根據目錄和文件名,建立 a.txt文件
			file.createNewFile();

		}
		//返回由此抽象路徑名錶示的文件或目錄的名稱。 這只是路徑名稱序列中的最後一個名字。 若是路徑名的名稱序列爲空,則返回空字符串。
		System.out.println(file.getName()); //a.txt
		//返回此抽象路徑名的父null的路徑名字符串,若是此路徑名未命名爲父目錄,則返回null。
		System.out.println(file.getParent());//D:\IO
		//將此抽象路徑名轉換爲路徑名字符串。 結果字符串使用default name-separator character以名稱順序分隔名稱。
		System.out.println(file.getPath()); //D:\IO\a.txt

 

 

四、File 的一些技巧

  ①、打印給定目錄下的全部文件夾和文件夾裏面的內容 

public static void getFileList(File file){
		//第一級子目錄
		File[] files = file.listFiles();
		for(File f:files){
			//打印目錄和文件
			System.out.println(f);
			if(f.isDirectory()){
				getFileList(f);
			}
		}
	}

  測試:

public static void main(String[] args) throws Exception {
		File f = new File("D:"+File.separator+"WebStormFile");
		getFileList(f);
	}
相關文章
相關標籤/搜索