【Java】-- 輸入/ 輸出:探究java.io の File(文件類)

File(文件類)

File類直接操作文件和文件系統。

File類沒有指定信息怎樣從文件讀取或向文件存儲;

它描述了文件本身的屬性。

File對象用來獲取或處理與磁盤文件相關的信息,例如權限,時間,日期和目錄路徑。

此外,File還瀏覽子目錄層次結構。

 

 

Java 中的目錄當成File  對待,它具有附加的屬性——一個可以被 list( ) 方法檢測的文件名列表。

  1. File(String directoryPath)  
  2. File(String directoryPath, String filename)  
  3. File(File dirObj, String filename) 
  1. File file = new File("D:/"); 
  2. File file2 = new File("D:/""test.txt"); 
  3. File file3 = new File(file, "test.txt"); 
  4. //file2和file3指向相同的文件 

 

File 定義了很多獲取File對象標準屬性的方法

  1. getName()   // 返回文件名 
  2. getPath()   // 返回目錄 
  3. getParent() // 返回父目錄名 
  4. exists()    // 判斷文件是否存在 true存在 
  5. //其他的查看api 

特殊方法

  isFile()在文件被調用的時候返回true,在目錄被調用的時候返回false,可用來判斷是否是文件執行

  isAbsolute()在文件擁有絕對路徑時返回true,相對路徑時返回false

file還包含兩個實用的方法

  1. renameTo()
    1. //文件命名成功返回true,命名失敗返回false  
    2. boolean renameTo(File newName) 
  2. delete()
    1. //當文件目錄爲空時刪除目錄,刪除成功返回true 刪除失敗返回false 
    2. boolean delete( )  

其他一些新增方法

  1. void deleteOnExit() //在java 虛擬機終止時刪除與調用對象相關的文件 
  2. boolean isHidden()  //判斷調用文件是否隱藏 
  3. boolean setReadOnly() //設置調用文件爲只讀 

一、目錄

目錄是一個包含其他文件和路徑列表的File類

當你創建一個file對象且他/她是目錄時,調用isDirectory()返回ture,這時 可以調用list() 返回一個String數組對象  包含該目錄內部其他文件和目錄的列表

  1. //返回該目錄下的文件和目錄的列表 
  2. String[ ] list() 

例子:將D盤的文件和目錄列表輸出

  1. public static void main(String[] args) { 
  2.     File file = new File("D:/"); 
  3.     String list[] = file.list(); 
  4.     for (int i = 0; i < list.length; i++) { 
  5.         System.out.print(list[i]+"  "); 
  6.     } 
  7.  
  8.     // 輸出結果 
  9.     // ↓↓↓ 
  10.     // $RECYCLE.BIN  AppServ  Baidu  Config.Msi  Foxmail 7.0  MyDrivers  Program Files  samples  System Volume Information  TDDownload  test.txt  WorkSpace  微雲網盤   

 


二、FilenameFilter

 

你總是希望能夠限制由list( )方法返回的文件數目,使它僅返回那些與一定的文件名方式或者過濾(filter) 相匹配的文件

  1. //FFObj 是一個實現FilenameFilter 接口的類的對象。 
  2. String[] list(FilenameFilter FFObj)  

FilenameFilter 僅定義了一個方法,accept( ) 。該方法被列表中的每個文件調用一次

  1. boolean accept(File directory, String filename)  

 

當被directory  指定的目錄中的文件(也就是說,那些與filename  參數匹配的文件)包含在列表中時,accept( ) 方法返回true  ,當這些文件沒有包括在列表中時,accept( ) 返回false 。

  1. class EndWith implements FilenameFilter { 
  2.  
  3.     private String str; 
  4.  
  5.     /** 
  6.      * @param str 
  7.      *            文件後綴 
  8.      * */ 
  9.     public EndWith(String str) { 
  10.         this.str = "." + str; 
  11.     } 
  12.  
  13.     @Override 
  14.     public boolean accept(File dir, String name) { 
  15.         // TODO Auto-generated method stub 
  16.         return name.endsWith(str); 
  17.     } 
  18.  
  19.  
  20. public class Example { 
  21.  
  22.     public static void main(String[] args) { 
  23.         File file = new File("D:/"); 
  24.         // 返回後綴爲txt的列表 
  25.         FilenameFilter filenameFilter = new EndWith("txt"); 
  26.         String list[] = file.list(filenameFilter); 
  27.         for (int i = 0; i < list.length; i++) { 
  28.             System.out.print(list[i] + "  "); 
  29.         } 
  30.     } 
  31.  
  32.     // 輸出結果 
  33.     // ↓↓↓ 
  34.     // test.txt   

三、listFiles()方法

  1. 以File對象矩陣的形式返回文件列表,而不是用字符串形式返回 
  2. //返回所有的文件 
  3. File[] listFiles( )  
  4. //返回滿足指定FilenameFilter 接口的文件 
  5. File[] listFiles(FilenameFilter FFObj)  
  6. //返回滿足指定FileFilter 的路徑名的文件 
  7. File[] listFiles(FileFilter FObj)  

FileFilter 只定義了一個accept( ) 方法,該方法被列表中的每個文件調用一次

  1. boolean accept(File path)   
  2. //如果文件被包括在列表中(即與path 參數匹配的文件),accept( ) 方法返回true ,如果不被包括,則返回false. 

四、創建目錄

  1. mkdir()

     mkdir( )方法創建了一個目錄,創建成功返回true ,創建失敗返回false。

    創建失敗是指File對象指定的目錄已經存在,或者是因爲整個路徑不存在而不能創建目錄。

  2. mkdirs()
     用mkdirs( )的方法。它創建目錄以及該目錄所有的父目錄

 

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