前幾節中我們了解了如何進行檔案級的相關操作,現在讓我們走進檔案,借助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面向對象程式設計文章檢視此處