File類
??File類是java.io包下代表與平臺無關的文件和目錄,也就是說如果希望在程序中操作文件和目錄都可以通過File類來完成岭埠,值得指出的是不管是文件、還是目錄都是使
用File來操作的构眯,F(xiàn)ile能新建寥裂、刪除和重命名文件和目錄,F(xiàn)ile不能訪問文件內容本身赖捌。如果需要訪問文件內容本身祝沸,則需要使用輸入/輸出流。
??File類可以使用路徑字符串類創(chuàng)建File實例越庇,該文件路徑字符串既可以是絕對路徑罩锐,也可以是相對路徑,默認情況下卤唉,系統(tǒng)總是依據(jù)用戶的工作路徑來解釋相對路徑涩惑,
這個路徑由系統(tǒng)屬性“user.dir”指定,通常也就是運行Java虛擬機時所在的路徑桑驱。
訪問文件名相關的方法
String getName():返回此File對象的所表示的文件名或路徑名(如果是路徑的話竭恬,返回最后一級子路徑名)。
String getPath():返回此File對象所對應的路徑名碰纬。
File getAbsoluteFile():返回此File對象所對應的絕對路徑所對應的File對象萍聊。
String getParent():返回此File對象對應目錄(最后一級子目錄)的父目錄名。
boolean renameTo(File newName):重命名此File對象對應的文件或目錄悦析,如果重命名成功返回true寿桨;否則返回false。
文件檢測相關方法
boolean exists():判斷File對象對應的文件或目錄是否存在
boolean canWrite():判斷File對象對應的文件和目錄是否可寫强戴。
boolean canRead():判斷File對象對應的文件和目錄是否可讀亭螟。
boolean isFile():判斷File對應所對應的是否是文件,不是目錄骑歹。
boolean isAbsolute():判斷File對象所對應的文件或目錄是否是絕對路徑预烙。該方法消除了不同平臺的差異,可以直接判斷File對象是否為絕對路徑道媚。在Unix/Linux/BSD等系統(tǒng)上扁掸,如果路徑名開頭是一條斜線(/),則表明該File對象對應一個絕對路徑,在Windows等系統(tǒng)上最域,如果路徑開頭是盤符谴分,則說明它是一個絕對路徑。
獲取常規(guī)文件信息
long lastModified():返回文件的最后修改時間镀脂。
long length();返回文件內容的長度牺蹄。
文件操作的相關方法
boolean createNewFile():當此File對象所對應的文件不存在時,該方法將新建一個該File對象所指定的新文件薄翅,創(chuàng)建成功返回true沙兰,否則返回false氓奈。
boolean delete():刪除File對象所對應的文件或路徑。
static File createTempFile(String prefix,String suffix):在默認臨時文件目錄中創(chuàng)建一個臨時的空文件鼎天,使用給定前綴舀奶、系統(tǒng)生成的隨機數(shù)和給定后綴作為文件名。這是一個靜態(tài)方法训措,可以直接通過File類來調用伪节。prefix參數(shù)至少必須是三個字節(jié)長光羞。建議前綴使用一個短的绩鸣、有意義的字符串,比如“hjb”或“mail”纱兑。suffix參數(shù)可以為null呀闻,在這種情況下,將使用默認后綴“.tmp”潜慎。
static File createTempFile(String prefix,String suffix,File directory):在directory所指定的目錄中創(chuàng)建一個臨時的空文件捡多,使用給定前綴、系統(tǒng)生成的隨機數(shù)和給定后綴作為文件名铐炫。這是一個靜態(tài)方法垒手,可以直接通過File類來調用。
void deleteOnExit():注冊一個刪除鉤子倒信,指定當Java虛擬機退出時科贬,刪除File對象所對應的文件和目錄。
目錄操作的相關方法
boolean mkdir():試圖創(chuàng)建一個File對象所對應的目錄鳖悠,如果創(chuàng)建成功榜掌,則返回true,否則返回false乘综。調用該方法時File對象必須對應一個路徑憎账,而不是一個文件。
String[] list():列出File對象的所有子文件名和路徑名卡辰,返回String數(shù)組胞皱。
File[] listFiles():列出File對象的所有子文件和路徑,返回File數(shù)組九妈。
static File[] listRoots():列出系統(tǒng)所有的根路徑反砌。這是一個靜態(tài)方法,可以直接通過File類來調用允蚣。
程序實現(xiàn):
public class FileTest {
public static void main(String[] args) throws IOException {
//以當前路徑來創(chuàng)建一個File對象
File file = new File(".");
//直接獲取文件名于颖,輸出一點
System.out.println(file.getName());
//獲取相對路徑的父路徑可能出錯,下面代碼輸出null
System.out.println(file.getParent());
//獲取絕對路徑
System.out.println(file.getAbsoluteFile());
//在當前路徑下創(chuàng)建一個臨時文件
File tmpFile = File.createTempFile("aaa",".txt",file);
//指定當JVM退出時刪除該文件
tmpFile.deleteOnExit();
//以系統(tǒng)當前時間作為新文件名來創(chuàng)建新文件
File newFile = new File(System.currentTimeMillis()+"");
System.out.println("newFile對象是否存在:" + newFile.exists());
//以指定newFile對象來創(chuàng)建一個文件
newFile.createNewFile();
//以newFile對象來創(chuàng)建一個目錄嚷兔,因為newFile已經存在森渐,
//所以下面方法返回false做入,即無法創(chuàng)建該目錄
newFile.mkdir();
//使用list方法來列出當前路徑下的所有文件和路徑
String[] fileList = file.list();
System.out.println("======當前路徑下所有文件和路徑如下=====");
for (String fileName:fileList) {
System.out.println(fileName);
}
//listRoots靜態(tài)方法列出所有的磁盤根路徑
File[] roots = File.listRoots();
System.out.println("======系統(tǒng)所有根路徑如下");
for (File root:roots) {
System.out.println(root);
}
}
}