天天看點

【Java】File類

【Java】File類

一、概述

* File更應該叫做一個路徑, 檔案路徑或者檔案夾路徑

* 路徑分為絕對路徑和相對路徑

* 絕對路徑是一個固定的路徑,從盤符開始

* 相對路徑相對于某個位置,在eclipse下是指目前項目下,在dos下

* 檢視API指的是目前路徑

* 檔案和目錄路徑名的抽象表示形式

* 字元串中的需要//來表示分隔符,因為一個/為轉義符

二、構造方法

1、File(Stringpathname):根據一個路徑建立得到File對象,絕對/相對路徑

2、File(Stringparent, String child):根據一個目錄(檔案夾)和一個子檔案/目錄得到File對象,父級路徑+子級路徑

3、File(Fileparent, String child):根據一個父File對象和一個子檔案/目錄得到File對象,将父級路徑封裝成一個File對象

三、File類的建立功能

* public boolean createNewFile():檔案如果不存在,則建立并傳回true,如果存在這樣的檔案,就不建立了傳回 false

* public boolean mkdir():建立單個檔案夾傳回true,如果存在這樣的檔案夾,就不建立了傳回false

* public boolean mkdirs():建立多級檔案夾,如果父檔案夾不存在,會幫你建立出來

* 注意事項:

如果你建立檔案或者檔案夾忘了寫盤符路徑,那麼,預設在項目路徑下。

四、File類的重命名和删除功能

1、public boolean renameTo(File dest):把檔案重命名為指定的檔案路徑,

File dest為目标檔案路徑(名字)

* 如果路徑名相同,就是改名。

* 如果路徑名不同,就是改名并剪切。

2、public boolean delete():删除檔案或者檔案夾

* Java中的删除不走資源回收筒。不可撤回。要小心。

* 要删除一個檔案夾,請注意該檔案夾内不能包含檔案或者檔案夾,必須是空的

五、File類的判斷功能

* public boolean isDirectory():判斷是否是目錄(檔案夾)

* public boolean isFile():判斷是否是檔案

* public boolean exists():判斷是否存在

* public booleancanRead():判斷是否可讀

設定是否可讀:setReadable(boolean);

注意:windows系統認為所有的檔案都是可讀的,設定不起作用。在LINUX下,如果設為不可讀則為不可讀

* public boolean canWrite():判斷是否可寫

設定是都可寫:setWriteable(boolean);

注意:windows系統可以設定為不可寫

* publicboolean isHidden():判斷是否隐藏

六、File類的擷取功能

* public String getAbsolutePath():擷取絕對路徑

* public String getPath():擷取路徑,擷取構造方法裡的路徑,跟建立時傳入的路徑有關

* public String getName():擷取檔案或者檔案夾的名稱

* public long length():擷取檔案的長度。位元組數

* public long lastModified():擷取最後一次的修改時間,毫秒值。

注意:可以使用毫秒值建立Date對象,使用SimpleDateFormat日期進行格式化。

[java] view plain copy

  1.         Date d = new Date(file1.lastModified());                //檔案的最後修改時間
  2.     SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  3.     System.out.println(sdf.format(d));

* public String[] list():擷取指定目錄下的所有檔案或者檔案夾的名稱數組,僅為了擷取檔案名

* public File[] listFiles():擷取指定目錄下的所有檔案或者檔案夾的File數組,擷取檔案對象,File類重寫了toString()方法。

七、練習

判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔案名稱

  1. import java.io.FilenameFilter;
  2. public class Test3 {
  3.     /**
  4.      * @param args
  5.      * * A:案例示範
  6.      * 需求:判斷E盤目錄下是否有字尾名為.jpg的檔案,如果有,就輸出該檔案名稱
  7.      */
  8.     public static void main(String[] args) {
  9.         File dir = new File("E:\\");
  10. //      String[] arr = dir.list();                  //擷取e盤下所有的檔案或檔案夾
  11. //      for (String string : arr) {
  12. //          if(string.endsWith(".jpg")) {
  13. //              System.out.println(string);
  14. //          }
  15. //      }
  16.         /*File[] subFiles = dir.listFiles();            //擷取e盤下所有的檔案或檔案夾對象
  17.         for (File subFile : subFiles) {
  18.             if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
  19.                 System.out.println(subFile);
  20.             }
  21.         }*/
  22.     }
  23. }

注意:如果想判斷E盤下檔案夾中jpg檔案,需要用到遞歸思想 ,後期學習。

原文位址

http://www.bieryun.com/3032.html