天天看點

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

上一篇:Flie類-踏入檔案的領域 | 帶你學《Java語言進階特性》之四十六

了解了File類提供的幾個基本功能後,我們還需要注意一些問題,比如檔案路徑分隔符、JVM檔案處理流程、建立時路徑注意事項等,本節将一一介紹。

【本節目标】

通過閱讀本節内容,你将了解到不同的作業系統中的路徑的編寫方式、注意到檔案操作過程中檔案名應當盡可能避免重複,掌握建立單級目錄和多級目錄的方法,保證上級路徑的存在性。

File類操作深入

現在已經實作了檔案的基礎操作,但是對于這個操作裡面也是存在有一些問題的,下面針對于之前的代碼進行優化處理。

1、在實際的軟體項目開發和運作過程之中,往往都會在Windows系統中進行項目的開發,而在項目部署的時候基于Linux或者Unix系統來進行項目釋出以保證生産環節的安全性。

在不同的作業系統之中會存在有不同的路徑分隔符:

Windows标準分隔符為“”;Linux分隔符為“/”;

是以在最初的開發時就必須考慮不同系統環境下的分隔符問題,是以為了解決此問題,File類提供有一個常量:public static final String separator;随着系統的适應性的不斷加強,對于目前的路徑操作,也可以比較随意的使用了。

範例:正常的路徑編寫

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        File file = new File("d:"+File.separator+"mldn.txt");
        if(file.exists()) {
             file.delete();    //删除檔案
        }else {    //檔案不存在
             System.out.println(file.createNewFile()) ;   //建立新的檔案
        }
    }
}           

但是随着系統的适應性的不斷加強,對于目前的路徑操作,也可以随意使用了。

File file = new File(“d:/mldn.txt”);           

2、在使用File類進行檔案處理的時候需要注意的是:程式→JVM→作業系統函數→檔案處理。是以在進行同一檔案反複删除或建立的時候有可能會出現延遲的問題,是以這時最好的方案是别重名;

3、在進行檔案建立的時候有個重要前提:檔案的父路徑必須首先存在。

  • 如何擷取父路徑:public File getParentFile();
  • 建立目錄:public boolean mkdir(),建立單級目錄;
  • 建立目錄:public boolean mkdirs(),建立多級目錄;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        File file = new File("d:"+File.separator+"hello"+File.separator+"demo"+File.separator"+"message"+File.separator"+mldn.txt");
        if(file.getParentFile().exists()) {    //父路徑不存在
             file.getParentFile.mkdirs() ;   //建立父路徑
        }
        if(file.exists()) {
             file.delete();    //删除檔案
        }else {    //檔案不存在
             System.out.println(file.createNewFile()) ;   //建立新的檔案
        }
    }
}           

這種判斷并且建立父目錄的操作在很多情況下可能隻需要一次,但是如果将這個判斷一直都停留在代碼裡面,那麼就會造成時間複雜度的提升,是以這個時候要想提升性能,請先保證目錄已經建立。

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

本内容視訊來源于

阿裡雲大學 下一篇:借助File類了解檔案的内在美 | 帶你學《Java語言進階特性》之四十八 更多Java面向對象程式設計文章檢視此處