18. Java IO: File
想要檢視此教程的目錄請點選:Java IO教程目錄貼地址
Java IO 的File類可以幫助你訪問底層的檔案系統,使用File類你可以:
- 檢視檔案或目錄是否存在
- 如果目錄不存在,可以建立
- 讀取檔案的長度
- 刪除或移動檔案
- 刪除檔案
- 檢視路徑指向的事檔案還是目錄
- 讀取目錄下的檔案列表
這篇文章會告訴你更多的相關操作。
注意:File只允許你訪問檔案和檔案系統的後設資料,如果你需要讀寫檔案的內容,那麼你可以使用FileInputStream,FileOutputStream和RandomAccessFile等。
注意:如果你使用的是Java NIO,你就得使用java.nio.FileChannel。(你可以兩種方法都使用,但是你只是想用Java NIO)
例項化java.io.File
在你使用File類對檔案系統做一些操作之前,你必須要建立一個File例項。下面是如何建立一個例項:
File file = new File("c:\\data\\input-file.txt");
很簡單對麼?File類也有一些其他的構造方法供你使用。
檢視檔案是否存在
一旦例項化了File,你就可以檢查相應的檔案是否存在。如果檔案不存在File類的構造方法也不會執行失敗。要檢查檔案是否存在,呼叫exists()方法,下面是一個例子:
File file = new File("c:\\data\\input-file.txt");
boolean fileExists = file.exists();
如果目錄不存在,那麼建立一個
你可以用File類建立一個目錄,如果該目錄不存在。相關的方法為mkdir()和mkdirs()。
利用mkdir()建立一個資料夾,如果該資料夾不存在:
File file = new File("c:\\users\\jakobjenkov\\newdir");
boolean dirCreated = file.mkdir();
假如c:\users\jakobjenkov目錄已經存在,上面的程式碼會建立一個jakobjenkov的子目錄newdir。如果目錄已經建立好,mkdir()會返回true,如果沒有則返回false。
mkdirs()會建立所有所有引數中不存在的路徑:
File file = new File("c:\\users\\jakobjenkov\\newdir");
boolean dirCreated = file.mkdirs();
假如C盤已經存在,例子中的程式碼會建立所有的相關資料夾,如果建立好則返回true,反之則為not。
檔案長度
以位元組讀取檔案的長度,呼叫length()方法,下面是一個例子:
File file = new File("c:\\data\\input-file.txt");
long length = file.length();
重新命名或移動檔案
重新命名或移動一個檔案,呼叫renameTo()方法:
File file = new File("c:\\data\\input-file.txt");
boolean success = file.renameTo(new File("c:\\data\\new-file.txt"));
正如前面所簡要提到的,renameTo()方法也可以用來移動檔案到另一個目錄。給renameTo()方法傳遞的新目錄名稱不要與檔案所在的目錄一樣。
renameTo()方法返回布林型別的值,表示重新命名是否成功。導致重新命名或移動檔案失敗有很多原因,比如檔案已經被其他程式開啟,沒有足夠的許可權等等。
刪除檔案
刪除檔案需要呼叫delete() 方法:
File file = new File("c:\\data\\input-file.txt");
boolean success = file.delete();
此方法也會返回一個布林值表示檔案是否刪除成功。刪除檔案失敗的原因可能有檔案已經被其他程式開啟,沒有足夠的許可權等等。
確定指向的路徑是檔案還是目錄
File例項可以指向檔案或目錄。你可以檢查指向的具體是什麼,這裡呼叫isDirectory()方法。如果方法返回true那麼說明指向的是目錄,反之則為檔案:
File file = new File("c:\\data");
boolean isDirectory = file.isDirectory();
讀取目錄下的檔案列表
你可以通過呼叫list()方法或listFiles() 方法獲得一個目錄下的檔案列表,list()方法返回一個String陣列,代表指向的檔案或目錄的絕對路徑。listFiles() 方法返回一個File陣列,代表著相應檔案的File物件:
File file = new File("c:\\data");
String[] fileNames = file.list();
File[] files = file.listFiles();
相關文章
- Java IO1:IO和FileJava
- java.io.File中mkdir()和mkdirs()區別Java
- File與IO基礎
- Java程式設計基礎20——異常&IO(File類)Java程式設計
- Java io.File應用(建立路徑和檔案)Java
- EJB裡使用了file io,執行正常,但是沒有執行file io操作???
- aix file system, io 最佳化AI
- Java IOJava
- [java IO流]之 IO概述Java
- 18. 模組
- java -IO流Java
- Java IO流Java
- java - IO流Java
- Java IO流Java
- Java IO: 流Java
- Java IO: InputStreamJava
- Java IO: OutputStreamJava
- Java IO初探Java
- Java——IO流Java
- 【Java】File類Java
- Java 非阻塞 IO 和非同步 IOJava非同步
- Java的IO流Java
- 備戰-Java IOJava
- Java IO實踐Java
- Java IO 和 NIOJava
- Java IO: 網路Java
- Java IO流操作Java
- Java IO之NIOJava
- Java IO - ReaderJava
- Java review--IOJavaView
- [Java基礎]IOJava
- 面試題-JAVA IO面試題Java
- Java 基於字元的IO Char Based IOJava字元
- Java IO8:IO簡單總結Java
- JAVA(三)JAVA常用類庫/JAVA IOJava
- 【JAVA】Java中 File f=new File(String parent ,String child)Java
- java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 錯誤JavaExceptionObject
- No virtual method setOutputFile Ljava/io/File V in class Landroid/media/MediaRecorderJavaAndroid