一,文件類File類
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);
創建與刪除文件方法
- 創建文件:public boolean createNewFile(),創建一個新的空文件,其文件名命名爲對應的抽象目錄名;
- 重命名文件:public boolean renameTo(File newFile),當文件重命名成newFile對應的文件名;
- 刪除文件:public void delete( );
- 創建目錄:public boolean mkdir( );
獲取文件或目錄屬性方法
- 判斷文件或目錄是否存在: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(),返回文件的字節數;
獲取目錄成員
- File類有一個Sting list[ ]()方法,可以將目錄中所有的文件名保存在字符數組中,如
File f=new File("C:/jdk") //創建File類 String s[]=f.list(); //將jdk目錄下所有的文件或目錄名保存到s字符數組中
- File類有一個Sting list[ ]()方法,可以將目錄中所有的文件名保存在字符數組中,如
過濾文件名
- 通過創建一個實現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中