天天看點

借助File類了解檔案的内在美 | 帶你學《Java語言進階特性》之四十八

上一篇:深入了解File類,勘破檔案操作 | 帶你學《Java語言進階特性》之四十七

前幾節中我們了解了如何進行檔案級的相關操作,現在讓我們走進檔案,借助File類提供的其他方法,了解檔案的内部資訊吧。

【本節目标】

通過閱讀本節内容,你将結合具體代碼,實操File類的各種擷取檔案資訊的方法,了解可以通過File類擷取到哪些資訊,初步掌握檔案内部資訊的擷取方式。

擷取檔案資訊

除了可以進行檔案的操作之外,也可以通過File類來擷取一些檔案本身提供的資訊,可以擷取如下内容:

  • 檔案是否可讀:public boolean canRead();
  • 檔案是否可寫:public boolean canWrite();
  • 擷取檔案長度:public long length(),該方法傳回的是long資料類型,位元組長度;
  • 最後一次修改日期時間:public long lastModified();
  • 判讀是否是目錄:public boolean isDirectory();
  • 判斷是否是檔案:public boolean isFile();
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
class MathUtil {
    private MathUtil() {}
    public static double round(double num, int scale) {
        return Math.round(Math.pow(10, scale) * num) / Math.pow(10, scale);
    }
}

public class JavaAPIDemo {
    public static void main(String[] args) {
        File file = new File("d:"+ File.separator + "my.jpg");
        System.out.println("檔案是否可讀:" + file.canRead());  //true
        System.out.println("檔案是否可寫:" + file.canWrite());  //true
        System.out.println("檔案大小:" + MathUtil.round(file.length() / (double) 1024 / 1024,2));  //檔案大小:16.16
        System.out.println("最後的修改時間:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(file.lastModified())));
        System.out.println("是目錄嗎?"+file.isDirectory());  //false
        System.out.println("是檔案嗎?"+file.isFile());    //true
    }
}           

既然可以判斷給定的路徑是檔案還是目錄,那麼就可以進一步的判斷,如果發現是目錄,則應該列出目錄中的全部内容。

  • 列出目錄内容:public File[] listFiles();
import java.io.File;
public class JavaAPIDemo {
    public static void main(String[] args){
        File file = new File("d:"+ File.separator);
        if(file.isDirectory()){    //目前是一個目錄
            File result []=file.listFiles();  //列出目錄中的全部内容
            for (int x = 0 ;x < result.length; x ++){
                System.out.println(result[x]);
            }
        }
    }
}           

這些資訊的獲得都是檔案或目錄本身的操作,都不涉及到檔案内容的處理。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:教你使用File類列出目錄所有檔案 | 帶你學《Java語言進階特性》之四十九 更多Java面向對象程式設計文章檢視此處