流類關心的是文件的內容,而File類關心的是在磁盤上文件的存儲。
File對象最簡單的構造器將接受一個(完全的)文件名。如果你沒有提供路徑名,那么java就會使用當前路徑。“當前目錄”是執行虛擬機的進程的當前目錄。如果你是通過命令行啟動虛擬機的,那么它就是你啟動java可執行文件的目錄。對這個構造器的調用不會在指定文件不存在情況下創建一個具有指定文件名的文件。實際上,從File對象中創建文件是由文件流類的構造器或File類中的createNewFile方法完成的,createNewFile方法只有在具有指定文件名的文件不存在的情況下才會創建文件,并且會返回一個boolean值,來說明文件是否被成功創建。另一方面,一旦有了File對象, File類中exist方法就可以告知具有這個文件名的文件是否存在??梢源蛴〔⒉淮嬖诘奈募穆窂矫?/p>
File(String path,String name)它可以在由path參數指定的目錄中創建具有給定名字的File對象。(如果path參數為null,這個構造器將使用當前目錄創建File對象。)File(File dir,String name)其中, File對象表示一個目錄,與前面一樣,如果dir為null,這個構造器就會在當前目錄中創建一個File對象。可以使用isDirectory和isFile方法來了解一個文件對象表示的到底是文件還是目錄.可以使用mkdir來創建一個目錄。如果一個文件對象表示的是目錄,使用list()方法可以獲得由這個目錄下的文件名構成的數組。可以使用FileNameFilter對象作為list方法的參數來減小列表長度,而不是列出目錄中所有的文件。這些對象是滿足FileNameFilter接口的類的實例。要實現accept();
boolean accept(File dir, String name)應該定義為在文件能夠匹配過濾器標準時返回true。參數: dir 一個表示包含文件目錄的File對象name 文件名這個就是過濾用的,滿足accept中的條件就返回。比如
boolean accept(File dir,String name){return name.endsWith(xxxx);//只有文件名以xxxx結尾的可以返回。}File a = new File("F:"+File.separator+"cccc.txt");File a = new File("dir","filename");上面兩種方法就可以提供恰當的分隔符。boolean canRead()boolean canWrite()boolean canExecute() 表明文件是否可讀、可寫或可執行。boolean setReadable(boolean state, boolean ownerOnly) boolean setWritable(boolean state, boolean ownerOnly) boolean setExecutable(boolean state, boolean ownerOnly) 設置這個文件的可讀、可寫或可執行狀態。如果ownerOnly為true,狀態設置只對文件擁有者有效,否則,對所有人有效。這些方法在設置狀態成功后返回true。static boolean createTempFile(String PRefix, String suffix) static boolean createTempFile(String prefix, String suffix, File directory) 在系統的默認臨時目錄或給定目錄中創建一個臨時文件, 并使用給定的前綴或后綴來生成文件名。參數: prefix 至少3個字符長的前綴字符串 suffix 可選的后綴,如果為null,就是用.tmp directory 創建文件的目錄。如果為null,就在當前工作目錄中創建文件boolean delete()嘗試刪除這個文件,如果文件被刪除,則返回true,否則返回false。void deleteOnExit()請求在虛擬機關閉時將文件刪除。boolean exists()如果這個文件或目錄存在,則返回true,否則返回false。String getAbsolutePath()返回包含絕對路徑名的字符串。提示:應使用getCanonicalPath來替代它。File getCanonicalFile() 返回包含這個文件的規范路徑名的File對象。特別是它會移除冗余的"."目錄,使用恰當的目錄分隔符,并可以獲得底層文件系統所選擇的大小寫處理方式。String getCanonicalPath()返回包含這個文件的規范路徑名的字符串。特別是它會移除冗余的"."目錄,使用恰當的目錄分隔符,并可以獲得底層文件系統所選擇的大小寫處理方式。String getName()返回包含這個File對象的文件名的字符串(不包含路徑信息)。String getParent()返回這個File對象的父親名字的字符串。如果這個File對象是一個文件,那么它的父親就是包含它的目錄;如果它是一個目錄,那么它的父親就是其父目錄,如果它沒有父目錄,那么它的父親就是null。File getParentFile() 返回這個File目錄的父目錄的File對象。請查看getParent中關于“父親”的定義。String getPath()返回包含這個文件的路徑名的字符串。boolean isDirectory()如果這個File表示一個目錄,則返回true,否則返回false。boolean isFile()如果這個File對象表示一個文件而不是一個目錄或一個設備,則返回true。boolean isHidden() 如果這個File對象表示的是一個隱藏文件或目錄,則返回true。long lastModified()返回這個文件最后被修改的時間(記錄從GMT時間1970年1月1日0時以來的毫秒數),或者在文件不存在時返回0。使用Date(long)構造器可以將這個值轉換成一個日期。long length()返回這個文件按照字節度量的長度,或者在文件不存在時返回0。String[] list()返回由這個File對象包含的文件名和目錄名構成的字符串數組,或者在這個File不表示目錄時返回null。String[] list(FilenameFilter filter)返回由這個File對象包含的滿足過濾器條件的文件名和目錄名構成的字符串數組,或者在不存在符合條件的內容時返回null。File[] listFiles() 返回由這個File對象包含的文件和目錄所對應的File對象構成的數組,或者在這個File不表示目錄時返回null。File[] listFiles(FilenameFilter filter) 返回由這個File對象包含的滿足過濾器條件的文件和目錄所對應的File對象構成的數組,或者在不存在符合條件的內容時返回null。static File[] listRoots() 返回由所有可獲得的文件根對應的File對象構成的數組(例如,在Windows系統上,可以獲得表示所安裝的硬盤驅動器的多個File對象,包括本地驅動器和網絡映射驅動器。在UNIX系統上,你只能獲得"/")。boolean createNewFile() 自動創建一個由File對象給定名字的新文件。也就是說,檢查文件名和創建文件不會被文件系統的其他行為所中斷。在這個方法創建文件成功后返回true。boolean mkdir()創建一個由這個File對象給定名字的子目錄,如果子目錄創建成功則返回true,否則返回false。boolean mkdirs()與mkdir不同,這個方法在必要時將創建父目錄,只要有必需的目錄未能創建成功,則返回false。boolean renameTo(File newName)如果文件名被修改,則返回true,否則返回false。boolean setLastModified(long time) 設置這個文件的最后修改時間,如果設置成功則返回true,否則返回false。 time是一個表示從GMT時間1970年1月1日0時以來的毫秒數的長整數,可以使用Date類的getTime方法來計算這個值。boolean setReadOnly() 將這個文件設置成只讀,如果設置成功則返回true,否則返回false。URL toURL() 將這個File對象轉換成一個文件的URL。long getTotalSpace() long getFreeSpace() long getUsableSpace() 獲得由File對象所描述的分區的總大小、未分配字節的數量和可用字節的數量。如果這個File對象描述的不是一個分區,這些方法將返回0。
新聞熱點
疑難解答