File類: 表示文件和目錄路徑名的抽象表示形式际度。提供了一些列隊文件的操作方法
一:分隔符
路徑分隔符啥容,在不同的系統(tǒng)上分隔符表現(xiàn)不一樣,防止路徑出現(xiàn)問題不建議手動以"/"或者"\"來拼接路徑,以Char結(jié)尾表示是返回的是一個字節(jié)的路徑符號怎披,
System.out.println(File.separator);? ? ? ? // 輸出 "?\"
System.out.println(File.separatorChar); //輸出 "?\ "
System.out.println(File.pathSeparator); //輸出 "翘盖;"
System.out.println(File.pathSeparatorChar); //輸出"?桂塞;"
二:創(chuàng)建File對象實例
注意:上面說過File對象可以表示具體一個文件對象也可以表示具體文件目錄(文件夾)
即:pathName="D:\test" (目錄/文件夾),pathName="D:\test\test.txt"(具體對象)
1:File(Stringpathname)? ? 通過給定pathname來創(chuàng)建File實例馍驯, 最常用
2:File(URIuri)? 通過統(tǒng)一資源標(biāo)識符來創(chuàng)建File實例
3:File(String?parent,String?child)
parent:一個目錄路徑
child:可以是個純文件名藐俺,也可以是個帶有路徑的文件名
如果parent為null炊甲,創(chuàng)建File對象時路徑在當(dāng)前環(huán)境的根路徑
File file=new File("","test.txt");? ? // E:\test.txt
File file=new File("D:\\FileTest\\","test.txt"); //D:\FileTest\test.txt
File file=new File("","FileTest\\test.txt"); //E:\FileTest\test.txt
File file=new File("D:\\","FileTest\\test.txt"); //D:\FileTest\test.txt
***:我們parent為null的地方輸出是E:\\ ?這就是我當(dāng)前程序運行的根路徑
4:File(Fileparent,Stringchild)
同上(3) parent 只是個File的對象 也可以為null
3:File常用方法
boolean?exists() ?判斷當(dāng)前File對象是否存在(對象可以是文件也可以是路徑)
boolean?createNewFile() 創(chuàng)建一個文件,上級目錄必須存在才能創(chuàng)建文件
boolean?mkdir() 創(chuàng)建一個單層文件夾 (不能創(chuàng)建多層文件夾)
boolean?mkdirs() 創(chuàng)建一個多層文件夾(可以創(chuàng)建單層)
boolean?isDirectory() 是否個文件夾
boolean?isFile() 是否是個文件
boolean?isHidden() 當(dāng)前文件是否隱藏
long?length() 文件內(nèi)容的長度(字符)
boolean?renameTo(File?dest) 重命名
long?lastModified()文件最后一次修改時間
boolean?delete() 刪除文件或文件夾
void deleteOnExit() 在虛擬機終止時欲芹,請求刪除此抽象路徑名表示的文件或目錄。
boolean?canExecute()? 是否可以執(zhí)行此抽象路徑名表示的文件吟吝。
只有當(dāng)文件存在且當(dāng)前文件允許執(zhí)行(文件訪問是有權(quán)限的)時返回true
boolean?canRead() 同上文件存在且是否可讀
boolean?canWrite() 同上文件存在且是否可寫
String getName() 獲取文件或目錄的名稱菱父。
String?getParent() ?,File getParentFile() 獲取文件父目錄
long?getTotalSpace() 當(dāng)前文件處于的磁盤空閑內(nèi)存返回是字節(jié)
String[]?list() 當(dāng)前對象下所有文件夾名稱的字符串?dāng)?shù)組
File[]?listFiles() 同上只是返回的是文件夾路徑對象
static File[] listRoots()?返回程序?qū)?yīng)系統(tǒng)所有的根目錄
如我在電腦Ecplise中通過此方法獲取到就是D:\ 剑逃,C:\浙宜, E:\, F:\蛹磺,等磁盤根目錄
File[] listFiles(FilenameFilter filter)? String[]list(FilenameFilterfilter)
通過配置FilenameFilter來實現(xiàn)遍歷指定目錄中存在的文件或者文件后綴(如下3)
3:FilenameFilter 過濾接口配合File相關(guān)方法使用
FilenameFilter是個接口需要實現(xiàn)其中accept方法粟瞬,這個方法中返回的值就是我們需要過濾出來的值,accpet中File dir 這個目錄就是我們需要過濾的目錄萤捆,name是我們在當(dāng)前目錄中遍歷到的文件裙品。
4:FileFilter 同上這個也是個借口過濾的是文件目錄 用法同上
File?[]?listFiles?(FileFilterfilter)