日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java类之File记录

發(fā)布時間:2024/6/30 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java类之File记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

做文件讀取寫入的時候,要用到一個類: File,這里簡單記錄。

構(gòu)造方法,傳入一個字符串,絕對路徑和相對路徑都可以,文件名或者文件夾也可以:

public File(String pathname) 還有其它三個方法,不過個人認(rèn)為用處好像不大,不表。 使用方式就是new一個: File file = new File(fileName);

特別要注意的是這里的一個File對象,真的就只是一個對象而已,和你電腦上那個實(shí)際的文件,沒半毛錢關(guān)系,它只是一個普通對象,持有了這個文件名,然后解析出了其它的一點(diǎn),比如文件名啊,文件系統(tǒng)類型啊,分隔符啥的。

提供了一些還有點(diǎn)用的方法:

1、獲取文件名,如果是文件的話,就是文件名,如果是文件夾,那就是文件夾名咯?如果是以“./test.txt”這種形式的話,結(jié)果就是test.txt,如果傳這個“./”,那直接就是“.”了:

public String getName()

2、獲取上級文件名:

public String getParent()

3、獲取上級文件:

public File getParentFile()

4、判斷是否是絕對路徑:

public boolean isAbsolute()

5、獲取對應(yīng)的絕對路徑:

public String getAbsolutePath()

6、獲取絕對路徑形式的一個File實(shí)例:

public File getAbsoluteFile()

7、獲取路徑,這種路徑是標(biāo)準(zhǔn)格式的路徑,對于win上,會返回可以直接用來放到文件夾的地址欄里打開:

public String getCanonicalPath()

這個方法和上面的兩個方法有點(diǎn)區(qū)別,表述起來不方便,一張圖說明差異:

8、獲取上面方法的地址對應(yīng)的File實(shí)例:

public File getCanonicalFile()

9、還能toURI,也不知道啥時候有用哦:

public URI toURI()

10、判斷此File實(shí)例對應(yīng)的真實(shí)文件是否可讀,這個有點(diǎn)用:

public boolean canRead()

11、有可讀判斷自然有可寫判斷:

public boolean canWrite()

12、還有是否存在的判斷:

public boolean exists()

13、判斷是否是文件夾?是路徑?是目錄?反正就是不是文件的那個東西:

public boolean isDirectory()

14、判斷是否是文件:

public boolean isFile()

15、還能判斷是否是隱藏文件:

public boolean isHidden()

16、上次修改時間,返回一個long形式的數(shù)字。。。:

public long lastModified()

17、文件長度,返回的是個long形數(shù)字,表示這個實(shí)際文件的字節(jié)數(shù)(byte):

public long length()

用在哪?讀取文件的時候,如果想整個讀出來,比如有一個不大不小的文本文件,想整個讀取出來,就需要先準(zhǔn)備好一個byte數(shù)組了,數(shù)組長度多少比較好呢?可不就是這個長度了嘛:

byte[] filecontent = new byte[filelength.intValue()];

18、還可以創(chuàng)建個新的文件,當(dāng)然了,只有文件不存在才會創(chuàng)建并返回true,如果文件存在就不創(chuàng)建了并返回false:

public boolean createNewFile()

而如果指定的文件里帶路徑并且路徑不存在,就直接報錯了:

19、刪除文件,這下和機(jī)器上的實(shí)際文件掛上鉤了:

public boolean delete()

20、JVM退出時刪除文件???:

public void deleteOnExit()

從最普通的main方法里看,main方法退出的時候,這個文件刪除了,不確定web項(xiàng)目的話什么時候會進(jìn)行刪除操作。

21、獲取當(dāng)前路徑下(如果是路徑的話)的所有文件名:

public String[] list()

如果不是路徑而是個普通文件,該方法返回null。

如果是路徑,也不保證返回的數(shù)組里文件名的順序,據(jù)說是特別不要想著會以字母表順序返回。本人測試時發(fā)現(xiàn)在win里好像是以排列順序返回的,不過排列順序這玩意,它叫我們不要信,那我們就認(rèn)為是亂序的吧,真要排序就拿來自己排一下。

22、獲取當(dāng)前路徑下所有文件名對應(yīng)的File實(shí)例數(shù)組:

public File[] listFiles(FilenameFilter filter)

這里的FilenameFilter只是一個接口,使用的時候可以這樣:

特別注意這里需要重寫accept方法,接收的參數(shù)dir是當(dāng)前路徑,name就是路徑下的一個文件名,這里假設(shè)獲取當(dāng)前路徑下以.jpg結(jié)尾的所有File實(shí)例。

?23、用當(dāng)前傳入的路徑創(chuàng)建文件夾:

public boolean mkdir()

注意這里只有當(dāng)只需要創(chuàng)建最后一節(jié)路徑的文件夾時才會創(chuàng)建成功,否則會創(chuàng)建失敗返回一個false。

比如,傳入的路徑是這樣:E:\game\test\test1,那就只有當(dāng)E盤下game和test都是已經(jīng)存在的文件夾時,才會創(chuàng)建最后那一節(jié)test1作為文件夾,否則就會創(chuàng)建失敗。要想在game和test文件夾都不存在的情況下創(chuàng)建成功,請用下面這個方法:

24、創(chuàng)建指定的任意合法的路徑文件夾,上級文件夾不存在的話也會創(chuàng)建上級文件夾。

public boolean mkdirs()

當(dāng)然,這兩個方法都是只創(chuàng)建成文件夾,哪怕傳入的是.../.../test.txt這種形式的參數(shù),也是一個文件夾,不要想著會是一個txt文件。

25、重命名為另外一個File實(shí)例指定的文件名:

public boolean renameTo

還有幾個修改文件可讀可寫可執(zhí)行的方法,不表。

?

靜態(tài)方法:

26、獲取當(dāng)前系統(tǒng)根目錄:

public static File[] listRoots()

win上就是c, d, e, f...之類的路徑,linux沒實(shí)驗(yàn),據(jù)說就是一個斜杠表示的根目錄(/)。

27、還有個方法,生成臨時文件:

public static File createTempFile

也是靜態(tài)方法,描述上說是生成臨時文件,可傳入三個參數(shù),依次是,前綴,后綴,路徑。生成的文件如下:

真的在這個位置生成了一個這樣的文件,當(dāng)然,是空的。和createNewFile方法還是有區(qū)別的,createNewFile方法需要先有一個File實(shí)例,然后才可以生成文件,而這個直接是個靜態(tài)方法。createNewFile方法不會生成隨機(jī)串在文件名里,這個方法會。

據(jù)說這個方法生成的文件就適合配合deleteOnExit方法使用。呵。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/lihan829/p/9557674.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Java类之File记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。