閱讀407 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java IO: File

Java IO API中的FIle類可以讓你訪問底層文件係統,通過File類,你可以做到以下幾點:

  • 檢測文件是否存在
  • 讀取文件長度
  • 重命名或移動文件
  • 刪除文件
  • 檢測某個路徑是文件還是目錄
  • 讀取目錄中的文件列表

請注意:File隻能訪問文件以及文件係統的元數據。如果你想讀寫文件內容,需要使用FileInputStream、FileOutputStream或者RandomAccessFile。如果你正在使用Java NIO,並且想使用完整的NIO解決方案,你會使用到java.nio.FileChannel(否則你也可以使用File)。

實例化一個java.io.File對象

在使用File之前,必須擁有一個File對象,這是實例化的代碼例子:

1 File file = new File("c:\\data\\input-file.txt");

很簡單,對嗎?File類同樣擁有多種不同實例化方式的構造函數。

檢測文件是否存在

當你獲得一個File對象之後,可以檢測相應的文件是否存在。當文件不存在的時候,構造函數並不會執行失敗。你已經準備好創建一個File了,對吧?

通過調用exists()方法,可以檢測文件是否存在,代碼如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean fileExists = file.exists();

文件長度

通過調用length()可以獲得文件的字節長度,代碼如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 long length = file.length();

重命名或移動文件

通過調用File類中的renameTo()方法可以重命名(或者移動)文件,代碼如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean success = file.renameTo(new File("c:\\data\\new-file.txt"));

刪除文件

通過調用delete()方法可以刪除文件,代碼如下:

1 File file = new File("c:\\data\\input-file.txt");
2  
3 boolean success = file.delete();

delete()方法與rename()方法一樣,返回布爾值表明是否成功刪除文件,同樣也會有相同的操作失敗原因。

檢測某個路徑是文件還是目錄

File對象既可以指向一個文件,也可以指向一個目錄。可以通過調用isDirectory()方法,可以判斷當前File對象指向的是文件還是目錄。當方法返回值是true時,File指向的是目錄,否則指向的是文件,代碼如下:

1 File file = new File("c:\\data");
2  
3 boolean isDirectory = file.isDirectory();

讀取目錄中的文件列表

你可以通過調用list()或者listFiles()方法獲取一個目錄中的所有文件列表。list()方法返回當前File對象指向的目錄中所有文件與子目錄的字符串名稱(譯者注:不會返回子目錄下的文件及其子目錄名稱)。listFiles()方法返回當前File對象指向的目錄中所有文件與子目錄相關聯的File對象(譯者注:與list()方法類似,不會返回子目錄下的文件及其子目錄)。代碼如下:

1 File file = new File("c:\\data");
2  
3 String[] fileNames = file.list();
4  
5 File[] files = file.listFiles();

最後更新:2017-05-23 12:02:33

  上一篇:go  《GO並發編程實戰》—— Concurrent Map
  下一篇:go  Java Reflection(七):私有變量和私有方法