一.File類中包含了很多獲得文件或文件夾屬性的方法,使用起來比較方便,下面將常見的方法介紹如下:
a、createNewFile方法
public boolean createNewFile() throws IOException
該方法的作用是創建指定的文件。該方法只能用於創建文件,不能用於創建文件夾,且文件路徑中包含的文件夾必須存在。
b、delect方法
public boolean delete()
該方法的作用是刪除當前文件或文件夾。如果刪除的是文件夾,則該文件夾必須為空。如果需要刪除一個非空的文件夾,則需要首先刪除該文件夾內部的每個文件和文件夾,然后在可以刪除,這個需要書寫一定的邏輯代碼實現。
c、exists方法
public boolean exists()
該方法的作用是判斷當前文件或文件夾是否存在。
d、getAbsolutePath方法
public String getAbsolutePath()
該方法的作用是獲得當前文件或文件夾的絕對路徑。例如c: est1.t則返回c: est1.t.
e、getName方法
public String getName()
該方法的作用是獲得當前文件或文件夾的名稱。例如c: est1.t,則返回1.t.
f、getParent方法
public String getParent()
該方法的作用是獲得當前路徑中的父路徑。例如c: est1.t則返回c: est.
g、isDirectory方法
public boolean isDirectory()
該方法的作用是判斷當前File對象是否是目錄。
h、isFile方法
public boolean isFile()
該方法的作用是判斷當前File對象是否是文件。
i、length方法
public long length()
該方法的作用是返回文件存儲時占用的字節數。該數值獲得的是文件的實際大小,而不是文件在存儲時占用的空間數。
j、list方法
public String[] list()// 並不包含其屬性。
該方法的作用是返回當前文件夾下所有的文件名和文件夾名稱。說明,該名稱不是絕對路徑。
k、listFiles方法
public File[] listFiles()
該方法的作用是返回當前文件夾下所有的文件對象。包含其屬性。
l、mkdir方法
public boolean mkdir()
該方法的作用是創建當前文件文件夾,而不創建該路徑中的其它文件夾。假設d盤下只有一個test文件夾,則創建d: estabc文件夾則成功,如果創建d:a文件夾則創建失敗,因為該路徑中d:a文件夾不存在。如果創建成功則返回true,否則返回false.
m、mkdirs方法
public boolean mkdirs()
該方法的作用是創建文件夾,如果當前路徑中包含的父目錄不存在時,也會自動根據需要創建。
n、renameTo方法
public boolean renameTo(File dest)
該方法的作用是修改文件名。在修改文件名時不能改變文件路徑,如果該路徑下已有該文件,則會修改失敗。
o、setReadOnly方法
public boolean setReadOnly()
該方法的作用是設置當前文件或文件夾為只讀。
11.3 I/O類使用
由於在IO操作中,需要使用的數據源有很多,作為一個IO技術的初學者,從讀寫文件開始學習IO技術是一個比較好的選擇。因為文件是一種常見的數據源,而且讀寫文件也是程序員進行IO編程的一個基本能力。本章IO類的使用就從讀寫文件開始。
11.3.1 文件操作
文件(File)是最常見的數據源之一,在程序中經常需要將數據存儲到文件中,例如圖片文件、聲音文件等數據文件,也經常需要根據需要從指定的文件中進行數據的讀取。當然,在實際使用時,文件都包含一個的格式,這個格式需要程序員根據需要進行設計,讀取已有的文件時也需要熟悉對應的文件格式,才能把數據從文件中正確的讀取出來。
文件的存儲介質有很多,例如硬盤、光盤和U盤等,由於IO類設計時,從數據源轉換為流對象的操作由API實現了,所以存儲介質的不同對於程序員來說是透明的,和實際編寫代碼無關。
11.3.1.1 文件的概念
文件是計算機中一種基本的數據存儲形式,在實際存儲數據時,如果對於數據的讀寫速度要求不是很高,存儲的數據量不是很大時,使用文件作為一種持久數據存儲的方式是比較好的選擇。
存儲在文件內部的數據和內存中的數據不同,存儲在文件中的數據是一種“持久存儲”,也就是當程序退出或計算機關機以后,數據還是存在的,而內存內部的數據在程序退出或計算機關機以后,數據就丟失了。
在不同的存儲介質中,文件中的數據都是以一定的順序依次存儲起來,在實際讀取時由硬件以及操作系統完成對於數據的控制,保證程序讀取到的數據和存儲的順序保持一致。
每個文件以一個文件路徑和文件名稱進行表示,在需要訪問該文件的時,只需要知道該文件的路徑以及文件的全名即可。在不同的操作系統環境下,文件路徑的表示形式是不一樣的,例如在Windows操作系統中一般的表示形式為C:windowssystem,而Unix上的表示形式為/user/my。所以如果需要讓Java程序能夠在不同的操作系統下運行,書寫文件路徑時還需要比較注意。
11.3.1.1.1 絕對路徑和相對路徑
絕對路徑是指書寫文件的完整路徑,例如d:javaHello.java,該路徑中包含文件的完整路徑d:java以及文件的全名Hello.java。使用該路徑可以唯一的找到一個文件,不會產生歧義。但是使用絕對路徑在表示文件時,受到的限制很大,且不能在不同的操作系統下運行,因為不同操作系統下絕對路徑的表達形式存在不同。
相對路徑是指書寫文件的部分路徑,例如 estHello.java,該路徑中只包含文件的部分路徑 est和文件的全名Hello.java,部分路徑是指當前路徑下的子路徑,例如當前程序在d:abc下運行,則該文件的完整路徑就是d:abc est。使用這種形式,可以更加通用的代表文件的位置,使得文件路徑產生一定的靈活性。
在Eclipse項目中運行程序時,當前路徑是項目的根目錄,例如工作空間存儲在d:javaproject,當前項目名稱是Test,則當前路徑是:d:javaprojectTest。在控制台下面運行程序時,當前路徑是class文件所在的目錄,如果class文件包含包名,則以該class文件最頂層的包名作為當前路徑。
另外在Java語言的代碼內部書寫文件路徑時,需要注意大小寫,大小寫需要保持一致,路徑中的文件夾名稱區分大小寫。由於’’是Java語言中的特殊字符,所以在代碼內部書寫文件路徑時,例如代表“c: estjavaHello.java”時,需要書寫成“c:\test\java\Hello.java”或“c:/test/java/Hello.java”,這些都需要在代碼中注意。
11.3.1.1.2 文件名稱
文件名稱一般采用“文件名.后綴名”的形式進行命名,其中“文件名”用來表示文件的作用,而使用后綴名來表示文件的類型,這是當前操作系統中常見的一種形式,例如“readme.txt”文件,其中readme代表該文件時說明文件,而txt后綴名代表文件時文本文件類型,在操作系統中,還會自動將特定格式的后綴名和對應的程序關聯,在雙擊該文件時使用特定的程序打開。
其實在文件名稱只是一個標示,和實際存儲的文件內容沒有必然的聯系,只是使用這種方式方便文件的使用。在程序中需要存儲數據時,如果自己設計了特定的文件格式,則可以自定義文件的后綴名,來標示自己的文件類型。
和文件路徑一樣,在Java代碼內部書寫文件名稱時也區分大小寫,文件名稱的大小寫必須和操作系統中的大小寫保持一致。
另外,在書寫文件名稱時不要忘記書寫文件的后綴名。
11.3.1.2 File類
為了很方便的代表文件的概念,以及存儲一些對於文件的基本操作,在java.io包中設計了一個專門的類——File類。
在File類中包含了大部分和文件操作的功能方法,該類的對象可以代表一個具體的文件或文件夾,所以以前曾有人建議將該類的類名修改成FilePath,因為該類也可以代表一個文件夾,更准確的說是可以代表一個文件路徑。
下面介紹一下File類的基本使用。
1、File對象代表文件路徑
File類的對象可以代表一個具體的文件路徑,在實際代表時,可以使用絕對路徑也可以使用相對路徑。
下面是創建的文件對象示例。
public File(String pathname)
該示例中使用一個文件路徑表示一個File類的對象,例如:
File f1 = new File(“d:\test\1.txt”);
File f2 = new File(“1.txt”);
File f3 = new File(“e:\abc”);
這里的f1和f2對象分別代表一個文件,f1是絕對路徑,而f2是相對路徑,f3則代表一個文件夾,文件夾也是文件路徑的一種。
public File(String parent, String child)
也可以使用父路徑和子路徑結合,實現代表文件路徑,例如:
File f4 = new File(“d:\test\”,”1.txt”);
這樣代表的文件路徑是:d: est1.txt。
2、File類常用方法
File類中包含了很多獲得文件或文件夾屬性的方法,使用起來比較方便,下面將常見的方法介紹如下:
a、createNewFile方法
public boolean createNewFile() throws IOException
該方法的作用是創建指定的文件。該方法只能用於創建文件,不能用於創建文件夾,且文件路徑中包含的文件夾必須存在。
b、delect方法
public boolean delete()
該方法的作用是刪除當前文件或文件夾。如果刪除的是文件夾,則該文件夾必須為空。如果需要刪除一個非空的文件夾,則需要首先刪除該文件夾內部的每個文件和文件夾,然后在可以刪除,這個需要書寫一定的邏輯代碼實現。
c、exists方法
public boolean exists()
該方法的作用是判斷當前文件或文件夾是否存在。
d、getAbsolutePath方法
public String getAbsolutePath()
該方法的作用是獲得當前文件或文件夾的絕對路徑。例如c: est1.t則返回c: est1.t。
e、getName方法
public String getName()
該方法的作用是獲得當前文件或文件夾的名稱。例如c: est1.t,則返回1.t。
f、getParent方法
public String getParent()
該方法的作用是獲得當前路徑中的父路徑。例如c: est1.t則返回c: est。
g、isDirectory方法
public boolean isDirectory()
該方法的作用是判斷當前File對象是否是目錄。
h、isFile方法
public boolean isFile()
該方法的作用是判斷當前File對象是否是文件。
i、length方法
public long length()
該方法的作用是返回文件存儲時占用的字節數。該數值獲得的是文件的實際大小,而不是文件在存儲時占用的空間數。
j、list方法
public String[] list()
該方法的作用是返回當前文件夾下所有的文件名和文件夾名稱。說明,該名稱不是絕對路徑。
k、listFiles方法
public File[] listFiles()
該方法的作用是返回當前文件夾下所有的文件對象。
l、mkdir方法
public boolean mkdir()
該方法的作用是創建當前文件文件夾,而不創建該路徑中的其它文件夾。假設d盤下只有一個test文件夾,則創建d: estabc文件夾則成功,如果創建d:a文件夾則創建失敗,因為該路徑中d:a文件夾不存在。如果創建成功則返回true,否則返回false。
m、mkdirs方法
public boolean mkdirs()
該方法的作用是創建文件夾,如果當前路徑中包含的父目錄不存在時,也會自動根據需要創建。
n、renameTo方法
public boolean renameTo(File dest)
該方法的作用是修改文件名。在修改文件名時不能改變文件路徑,如果該路徑下已有該文件,則會修改失敗。
o、setReadOnly方法
public boolean setReadOnly()
該方法的作用是設置當前文件或文件夾為只讀。
注明:QQ技術交流群:108614806 感興趣的加一下。