407
阿裏雲
技術社區[雲棲]
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" );
|
3 |
boolean fileExists = file.exists();
|
文件長度
通過調用length()可以獲得文件的字節長度,代碼如下:
1 |
File file = new File( "c:\\data\\input-file.txt" );
|
3 |
long length = file.length();
|
重命名或移動文件
通過調用File類中的renameTo()方法可以重命名(或者移動)文件,代碼如下:
1 |
File file = new File( "c:\\data\\input-file.txt" );
|
3 |
boolean success = file.renameTo( new File( "c:\\data\\new-file.txt" ));
|
刪除文件
通過調用delete()方法可以刪除文件,代碼如下:
1 |
File file = new File( "c:\\data\\input-file.txt" );
|
3 |
boolean success = file.delete();
|
delete()方法與rename()方法一樣,返回布爾值表明是否成功刪除文件,同樣也會有相同的操作失敗原因。
檢測某個路徑是文件還是目錄
File對象既可以指向一個文件,也可以指向一個目錄。可以通過調用isDirectory()方法,可以判斷當前File對象指向的是文件還是目錄。當方法返回值是true時,File指向的是目錄,否則指向的是文件,代碼如下:
1 |
File file = new File( "c:\\data" );
|
3 |
boolean isDirectory = file.isDirectory();
|
讀取目錄中的文件列表
你可以通過調用list()或者listFiles()方法獲取一個目錄中的所有文件列表。list()方法返回當前File對象指向的目錄中所有文件與子目錄的字符串名稱(譯者注:不會返回子目錄下的文件及其子目錄名稱)。listFiles()方法返回當前File對象指向的目錄中所有文件與子目錄相關聯的File對象(譯者注:與list()方法類似,不會返回子目錄下的文件及其子目錄)。代碼如下:
1 |
File file = new File( "c:\\data" );
|
3 |
String[] fileNames = file.list(); |
5 |
File[] files = file.listFiles(); |
最後更新:2017-05-23 12:02:33