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