JAVA中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()
  該方法的作用是設置當前文件或文件夾為只讀。


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   感興趣的加一下。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM