Java 數據流之File類

一,文件類File類

  1. File類構造方法

    • 第一種:File(String path) ,path指明新創建File對象對應的文件或目錄的路徑,如:

      File f1=new File("C:/myProgram/Java");  //絕對路徑下新建文件,指定目錄
      File f2=new File(/myProgram/Java");  //相對路徑下新建文件,當前目錄下的子目錄myProgram
    • 第二種:File(String path, String name) , path指定文件或目錄路徑,name指定文件或目錄名

      File f1=new File("/docs", "file.dat");  //相對路徑爲\docs,文件名爲file.dat
    • 第三種:File(String dir, String name) , dir指定已有的File對象的路徑,name指定該文件名或目錄名

      String sdir="myProgram"+System.dirSep+"Java"; 
      String sfile="FileIO.data";
      File Fdir=new File(sdir);
      File Ffile=new File(Fdir, sfile);
  2. 創建與刪除文件方法

    • 創建文件:public boolean createNewFile(),創建一個新的空文件,其文件名命名爲對應的抽象目錄名;
    • 重命名文件:public boolean renameTo(File newFile),當文件重命名成newFile對應的文件名;
    • 刪除文件:public void delete( );
    • 創建目錄:public boolean mkdir( );
  3. 獲取文件或目錄屬性方法

    • 判斷文件或目錄是否存在:public boolean exists( ) ,
    • 判斷是對象是否是有效文件:public boolean isFile( ),
    • 判斷是對象是否是有效目錄:public boolean isDirectory( ),
    • 獲取文件的讀寫屬性:public boolean canRead( ) , public boolean canWrite() ,
    • 比較兩文件或目錄是否相同:public boolean equals(File f),
    • 獲取文件或目錄路徑:public String getPath(),
    • 獲取文件或目錄名稱:public String getName(),
    • 獲取文件的長度:public long length(),返回文件的字節數;
  4. 獲取目錄成員

    • File類有一個Sting list[ ]()方法,可以將目錄中所有的文件名保存在字符數組中,如
      File f=new File("C:/jdk")     //創建FileString s[]=f.list();         //將jdk目錄下所有的文件或目錄名保存到s字符數組中
  5. 過濾文件名

    • 通過創建一個實現FilenameFilter接口的類,在該類中編寫需保留的文件名和後綴名的方法;
    • FilenameFilter過濾器接口是實現文件過濾功能必須實現的接口;

      class FilenameFilterDemo implements FilenameFilter{
          private String name;  //定義保留的文件名
          private String ext;    //定義保留的拓展名
      
          public FilenameFilterDemo (String name ,String ext){    //過濾器構造方法,入參是保留文件名和後綴名
              this.name=name;
              this.ext=ext;
          }
      
          public boolean accept(File dir, String filename){   //accept成員方法是過濾的核心函數
              boolean fString=true;
              if(name!=null)  fString &=filename.startsWith(name);
              if(ext!=null)    fString &=filename.endsWith("."+ext);
              return fString;
          }
      }
    • 對創建的過濾器類實例化對象後,就要用File類實例對象調用list方法,並將過濾器類對象作爲list函數的入口參數,此時list在獲取字符串數組目錄中所有的成員時,會自動過濾掉不符合name和ext的文件名;如,

      FilenameFilter x=new FilenameFilterDemo("java","exe");   //新建過濾器對象,設置保留以java開頭,並且以.exe結尾的文件
      File f=new File("c:/jdk/bin");        //新建File類對象,設置目錄爲bin
      String  s=f.list(x);                  //將過濾後的文件名字符串數組存放於s中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章