Java IO之File 類詳解
File 類:文件和目錄路徑名的抽象表示。
注意:File 類只能操作文件的屬性,文件的內(nèi)容是不能操作的。
1、File 類的字段

我們知道,各個平臺之間的路徑分隔符是不一樣的。
①、對于UNIX平臺,絕對路徑名的前綴始終為"/" 。 相對路徑名沒有前綴。 表示根目錄的抽象路徑名具有前綴"/"和空名稱序列。
②、對于Microsoft Windows平臺,包含驅(qū)動器說明符的路徑名的前綴由后面跟著":"的驅(qū)動器號組成,如果路徑名是絕對的,則可能后跟"\\" 。 UNC路徑名的前綴為"\\\\" ; 主機(jī)名和共享名稱是名稱序列中的前兩個名稱沒有有指定驅(qū)動器的相對路徑名沒有前綴。
那么為了屏蔽各個平臺之間的分隔符差異,我們在構(gòu)造 File 類的時候(如何構(gòu)造,請看下面第二點),就可以使用上述 Java 為我們提供的字段。
那么我們可以看出:
File.pathSeparator指的是分隔連續(xù)多個路徑字符串的分隔符
File.separator是用來分隔同一個路徑字符串中的目錄的
2、File 類的構(gòu)造方法

如何使用上述構(gòu)造方法,請看如下例子:
//不使用 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)
//從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實例。
File f3 = new File("D:");
File f4 = new File(f3,"IO");
System.out.println(f4); //D:\IO
//File(String pathname)
//通過將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來創(chuàng)建新的 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)
//從父路徑名字符串和子路徑名字符串創(chuàng)建新的 File實例。
File f6 = new File("D:","IO\\a.txt");
System.out.println(f6); //D:\IO\a.txt3、File 類的常用方法
①、創(chuàng)建方法
1.boolean createNewFile() 不存在返回true 存在返回false
2.boolean mkdir() 創(chuàng)建目錄,如果上一級目錄不存在,則會創(chuàng)建失敗
3.boolean mkdirs() 創(chuàng)建多級目錄,如果上一級目錄不存在也會自動創(chuàng)建
②、刪除方法
1.boolean delete() 刪除文件或目錄,如果表示目錄,則目錄下必須為空才能刪除
2.boolean deleteOnExit() 文件使用完成后刪除
③、判斷方法
1.boolean canExecute()判斷文件是否可執(zhí)行
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() 將此路徑名轉(zhuǎn)換為路徑名字符串
3.String getAbsolutePath()返回此抽象路徑名的絕對形式
4.String getParent()//如果沒有父目錄返回null
5.long lastModified()//獲取最后一次修改的時間
6.long length()返回由此抽象路徑名表示的文件的長度。
7.boolean renameTo(File f)重命名由此抽象路徑名表示的文件。
8.File[] liseRoots()//獲取機(jī)器盤符
9.String[] list() 返回一個字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中的文件和目錄。
10.String[] list(FilenameFilter filter)返回一個字符串?dāng)?shù)組,命名由此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。
//File(File parent, String child)
//從父抽象路徑名和子路徑名字符串創(chuàng)建新的 File實例。
File dir = new File("D:"+File.separator+"IO");
File file = new File(dir,"a.txt");
//判斷dir 是否存在且表示一個目錄
if(!(dir.exists()||dir.isDirectory())){
//如果 dir 不存在,則創(chuàng)建這個目錄
dir.mkdirs();
//根據(jù)目錄和文件名,創(chuàng)建 a.txt文件
file.createNewFile();
}
//返回由此抽象路徑名表示的文件或目錄的名稱。 這只是路徑名稱序列中的最后一個名字。 如果路徑名的名稱序列為空,則返回空字符串。
System.out.println(file.getName()); //a.txt
//返回此抽象路徑名的父null的路徑名字符串,如果此路徑名未命名為父目錄,則返回null。
System.out.println(file.getParent());//D:\IO
//將此抽象路徑名轉(zhuǎn)換為路徑名字符串。 結(jié)果字符串使用default name-separator character以名稱順序分隔名稱。
System.out.println(file.getPath()); //D:\IO\a.txt4、File 的一些技巧
①、打印給定目錄下的所有文件夾和文件夾里面的內(nèi)容
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);
}總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
spring?cloud中Feign導(dǎo)入jar失敗的問題及解決方案
這篇文章主要介紹了spring?cloud中Feign導(dǎo)入jar失敗的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
java如何在項目中實現(xiàn)excel導(dǎo)入導(dǎo)出功能
這篇文章主要介紹了java如何在項目中實現(xiàn)excel導(dǎo)入導(dǎo)出功能的相關(guān)資料,EasyExcel是一個基于Apache?POI開發(fā)的開源Java庫,用于簡化Excel文件的讀寫操作,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
如何使用Spring?Boot設(shè)置上傳文件大小限制
上傳文件是互聯(lián)網(wǎng)中常應(yīng)用的場景之一,最典型的情況就是上傳頭像等,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?Boot設(shè)置上傳文件大小限制的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
掌握SpringMVC中@InitBinder的實際應(yīng)用
這篇文章主要介紹了掌握SpringMVC中@InitBinder的實際應(yīng)用,@InitBinder是Spring MVC框架中的一個注解,用于自定義數(shù)據(jù)綁定的方法,通過在控制器中使用@InitBinder注解,可以將特定的數(shù)據(jù)綁定邏輯應(yīng)用于請求參數(shù)的處理過程中,需要的朋友可以參考下2023-10-10

