File
- File類描述的是一個(gè)文件或文件夾。(文件夾也可以稱為目錄)
- 該類的出現(xiàn)是對(duì)文件系統(tǒng)的中的文件以及文件夾進(jìn)行對(duì)象的封裝。可以通過(guò)對(duì)象的思想來(lái)操作文件以及文件夾。
- 可以用面向?qū)ο蟮奶幚韱?wèn)題,通過(guò)該對(duì)象的方法,可以得到文件或文件夾的信息方便了對(duì)文件與文件夾的屬性信息進(jìn)行操作。
- 文件包含很多的信息:如文件名、創(chuàng)建修改時(shí)間、大小、可讀可寫屬性等。
字段
static String pathSeparator
與系統(tǒng)有關(guān)的路徑分隔符,為了方便,它被表示為一個(gè)字符串。
static char pathSeparatorChar
與系統(tǒng)有關(guān)的路徑分隔符。
static String separator
與系統(tǒng)有關(guān)的默認(rèn)名稱分隔符,為了方便,它被表示為一個(gè)字符串。
static char separatorChar
與系統(tǒng)有關(guān)的默認(rèn)名稱分隔符。
System.out.println(File.pathSeparator); //;
System.out.println(File.pathSeparatorChar); //;
System.out.println(File.separator); //\(Windows下)
System.out.println(File.separatorChar); //\(Windows下)
構(gòu)造方法摘要
File(File parent, String child)
根據(jù) parent 抽象路徑名和 child 路徑名字符串創(chuàng)建一個(gè)新 File 實(shí)例。
File(String pathname)
通過(guò)將給定路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新 File 實(shí)例。
File(String parent, String child)
根據(jù) parent 路徑名字符串和 child 路徑名字符串創(chuàng)建一個(gè)新 File 實(shí)例。
方法
boolean canExecute()
測(cè)試應(yīng)用程序是否可以執(zhí)行此抽象路徑名表示的文件。
boolean canRead()
測(cè)試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件。
boolean canWrite()
測(cè)試應(yīng)用程序是否可以修改此抽象路徑名表示的文件。
boolean createNewFile()
當(dāng)且僅當(dāng)不存在具有此抽象路徑名指定名稱的文件時(shí),不可分地創(chuàng)建一個(gè)新的空文件。
File f = new File("a.java");
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
static File createTempFile(String prefix, String suffix)
在默認(rèn)臨時(shí)文件目錄中創(chuàng)建一個(gè)空文件,使用給定前綴和后綴生成其名稱。 prefix 參數(shù)至少必須是三個(gè)字節(jié)長(zhǎng)
static File createTempFile(String prefix, String suffix, File directory)
在指定目錄中創(chuàng)建一個(gè)新的空文件,使用給定的前綴和后綴字符串生成其名稱。 prefix 參數(shù)至少必須是三個(gè)字節(jié)長(zhǎng)
File f = new File(".\\");
try {
File.createTempFile("abc", ".java", f);
} catch (IOException e) {
e.printStackTrace();
}
在項(xiàng)目根目錄新建了文件 abc1006817782508133744.java
boolean mkdir()
創(chuàng)建此抽象路徑名指定的目錄。 父文件夾必須存在
boolean mkdirs()
創(chuàng)建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。 父文件夾可以不存在
File f = new File("C:\\Users\\Administrator\\Desktop\\11\\12\\123");
f.mkdirs();
boolean delete()
刪除此抽象路徑名表示的文件或目錄。
不放入回收站直接刪除,找不回的那種,刪除文件夾是只能刪除空文件夾
public static void main(String[] args) {
File f = new File("C:\\Users\\Administrator\\Desktop\\11");
deleteFile(f);
}
private static void deleteFile(File f) {
File[] list = f.listFiles();
if(list != null) {
for (File file : list) {
if(file.isDirectory()) {
deleteFile(file);
}
file.delete();
}
}
f.delete();
}
void deleteOnExit()
在虛擬機(jī)終止時(shí),請(qǐng)求刪除此抽象路徑名表示的文件或目錄。
調(diào)用時(shí)不會(huì)刪除,在虛擬機(jī)終止時(shí)刪除
boolean renameTo(File dest)
重新命名此抽象路徑名表示的文件。
當(dāng)前目錄下重命名,不同路徑復(fù)制
long length()
返回由此抽象路徑名表示的文件的長(zhǎng)度。
boolean isDirectory()
測(cè)試此抽象路徑名表示的文件是否是一個(gè)目錄。
boolean isFile()
測(cè)試此抽象路徑名表示的文件是否是一個(gè)標(biāo)準(zhǔn)文件。
boolean isHidden()
測(cè)試此抽象路徑名指定的文件是否是一個(gè)隱藏文件。
String[] list()
返回一個(gè)字符串?dāng)?shù)組,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。
String[] list(FilenameFilter filter)
返回一個(gè)字符串?dāng)?shù)組,這些字符串指定此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。
File[] listFiles()
返回一個(gè)抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中的文件。
File[] listFiles(FileFilter filter)
返回抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。
File[] listFiles(FilenameFilter filter)
返回抽象路徑名數(shù)組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。
static File[] listRoots()
列出可用的文件系統(tǒng)根。
FilenameFilter實(shí)現(xiàn)此接口的類實(shí)例可用于過(guò)濾器文件名
FileFilter用于抽象路徑名的過(guò)濾器。
String getName()
返回由此抽象路徑名表示的文件或目錄的名稱。
public static void main(String[] args) {
File f = new File("./b.txt");
System.out.println(f.getName());
}
//b.txt
此時(shí)如果沒(méi)有該文件文件,執(zhí)行時(shí)依然能獲取到名字,因?yàn)樘摂M機(jī)在內(nèi)存中創(chuàng)建了文件
路徑
路徑就是文件或文件夾所在的位置。
路徑分割符
上下級(jí)文件夾之間使用分隔符分開(kāi):
在Windows中分隔符為'',在Unix/Linux中分隔符為'/'。-
跨平臺(tái)的目錄分隔符
更專業(yè)的做法是使用File.separatorChar,這個(gè)值就會(huì)根據(jù)系統(tǒng)得到的相應(yīng)的分割符。例:new File("c:" + File.separatorChar + "a.txt"); 注意,如果是使用"\",則需要進(jìn)行轉(zhuǎn)義,寫為"\\"才可以,如果是兩個(gè)"\",則寫為"\\\\"。
絕對(duì)路徑與相對(duì)路徑
-
絕對(duì)路徑
- 對(duì)于UNIX平臺(tái),絕對(duì)路徑名的前綴是"/"。相對(duì)路徑名沒(méi)有前綴。
- 對(duì)于Windows平臺(tái),絕對(duì)路徑名的前綴由驅(qū)動(dòng)器號(hào)和一個(gè)":"組成,例"c:\..."。相對(duì)路徑?jīng)]有盤符前綴。
-
相對(duì)路徑:
相對(duì)路徑是指相對(duì)于某位置的路徑,是指相對(duì)于當(dāng)前目錄。
在執(zhí)行Java程序時(shí),相對(duì)路徑為執(zhí)行java命令時(shí)當(dāng)前所在的目錄。File file = new File("a.txt"); File file = new File(".\\a.txt"); 都表示本目錄下文件