1. 程式人生 > >Java類之File記錄

Java類之File記錄

int ole write 而已 inf java類 修改時間 true new

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

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

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

特別要註意的是這裏的一個File對象,真的就只是一個對象而已,和你電腦上那個實際的文件,沒半毛錢關系,它只是一個普通對象,持有了這個文件名,然後解析出了其它的一點,比如文件名啊,文件系統類型啊,分隔符啥的。

提供了一些還有點用的方法:

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

public String getName()

2、獲取上級文件名:

public String getParent()

3、獲取上級文件:

public File getParentFile()

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

public boolean isAbsolute()

5、獲取對應的絕對路徑:

public String getAbsolutePath()

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

public File getAbsoluteFile()

7、獲取路徑,這種路徑是標準格式的路徑,對於win上,會返回可以直接用來放到文件夾的地址欄裏打開:

public
String getCanonicalPath()

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

技術分享圖片

8、獲取上面方法的地址對應的File實例:

public File getCanonicalFile()

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

public URI toURI()

10、判斷此File實例對應的真實文件是否可讀,這個有點用:

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形式的數字。。。:

public long lastModified()

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

public long length()

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

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

18、還可以創建個新的文件,當然了,只有文件不存在才會創建並返回true,如果文件存在就不創建了並返回false:

public boolean createNewFile()

19、刪除文件,這下和機器上的實際文件掛上鉤了:

public boolean delete()

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

public void deleteOnExit()

從最普通的main方法裏看,main方法退出的時候,這個文件刪除了,不確定web項目的話什麽時候會進行刪除操作。

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

public String[] list()

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

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

22、獲取當前路徑下所有文件名對應的File實例數組:

public File[] listFiles(FilenameFilter filter)

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

技術分享圖片

特別註意這裏需要重寫accept方法,接收的參數dir是當前路徑,name就是路徑下的一個文件名,這裏假設獲取當前路徑下以.jpg結尾的所有File實例。

心有點累,這麽一個類裏好幾十個方法,以上還只是部分,感覺比較有用的方法。

Java類之File記錄