File(文件類)
File類直接操作文件和文件系統。
File類沒有指定信息怎樣從文件讀取或向文件存儲; 它描述了文件本身的屬性。 File對象用來獲取或處理與磁盤文件相關的信息,例如權限,時間,日期和目錄路徑。 此外,File還瀏覽子目錄層次結構。 |
Java 中的目錄當成File 對待,它具有附加的屬性——一個可以被 list( ) 方法檢測的文件名列表。
- File(String directoryPath)
- File(String directoryPath, String filename)
- File(File dirObj, String filename)
- File file = new File("D:/");
- File file2 = new File("D:/", "test.txt");
- File file3 = new File(file, "test.txt");
- //file2和file3指向相同的文件
File 定義了很多獲取File對象標準屬性的方法
- getName() // 返回文件名
- getPath() // 返回目錄
- getParent() // 返回父目錄名
- exists() // 判斷文件是否存在 true存在
- //其他的查看api
特殊方法
isFile()在文件被調用的時候返回true,在目錄被調用的時候返回false,可用來判斷是否是文件執行 isAbsolute()在文件擁有絕對路徑時返回true,相對路徑時返回false |
file還包含兩個實用的方法
- renameTo()
- //文件命名成功返回true,命名失敗返回false
- boolean renameTo(File newName)
- delete()
- //當文件目錄爲空時刪除目錄,刪除成功返回true 刪除失敗返回false
- boolean delete( )
其他一些新增方法
- void deleteOnExit() //在java 虛擬機終止時刪除與調用對象相關的文件
- boolean isHidden() //判斷調用文件是否隱藏
- boolean setReadOnly() //設置調用文件爲只讀
一、目錄
目錄是一個包含其他文件和路徑列表的File類
當你創建一個file對象且他/她是目錄時,調用isDirectory()返回ture,這時 可以調用list() 返回一個String數組對象 包含該目錄內部其他文件和目錄的列表
- //返回該目錄下的文件和目錄的列表
- String[ ] list()
例子:將D盤的文件和目錄列表輸出
- public static void main(String[] args) {
- File file = new File("D:/");
- String list[] = file.list();
- for (int i = 0; i < list.length; i++) {
- System.out.print(list[i]+" ");
- }
- }
- // 輸出結果
- // ↓↓↓
- // $RECYCLE.BIN AppServ Baidu Config.Msi Foxmail 7.0 MyDrivers Program Files samples System Volume Information TDDownload test.txt WorkSpace 微雲網盤
二、FilenameFilter
你總是希望能夠限制由list( )方法返回的文件數目,使它僅返回那些與一定的文件名方式或者過濾(filter) 相匹配的文件
- //FFObj 是一個實現FilenameFilter 接口的類的對象。
- String[] list(FilenameFilter FFObj)
FilenameFilter 僅定義了一個方法,accept( ) 。該方法被列表中的每個文件調用一次
- boolean accept(File directory, String filename)
當被directory 指定的目錄中的文件(也就是說,那些與filename 參數匹配的文件)包含在列表中時,accept( ) 方法返回true ,當這些文件沒有包括在列表中時,accept( ) 返回false 。
- class EndWith implements FilenameFilter {
- private String str;
- /**
- * @param str
- * 文件後綴
- * */
- public EndWith(String str) {
- this.str = "." + str;
- }
- @Override
- public boolean accept(File dir, String name) {
- // TODO Auto-generated method stub
- return name.endsWith(str);
- }
- }
- public class Example {
- public static void main(String[] args) {
- File file = new File("D:/");
- // 返回後綴爲txt的列表
- FilenameFilter filenameFilter = new EndWith("txt");
- String list[] = file.list(filenameFilter);
- for (int i = 0; i < list.length; i++) {
- System.out.print(list[i] + " ");
- }
- }
- // 輸出結果
- // ↓↓↓
- // test.txt
- }
三、listFiles()方法
- 以File對象矩陣的形式返回文件列表,而不是用字符串形式返回
- //返回所有的文件
- File[] listFiles( )
- //返回滿足指定FilenameFilter 接口的文件
- File[] listFiles(FilenameFilter FFObj)
- //返回滿足指定FileFilter 的路徑名的文件
- File[] listFiles(FileFilter FObj)
FileFilter 只定義了一個accept( ) 方法,該方法被列表中的每個文件調用一次
- boolean accept(File path)
- //如果文件被包括在列表中(即與path 參數匹配的文件),accept( ) 方法返回true ,如果不被包括,則返回false.
四、創建目錄
- mkdir()
mkdir( )方法創建了一個目錄,創建成功返回true ,創建失敗返回false。
創建失敗是指File對象指定的目錄已經存在,或者是因爲整個路徑不存在而不能創建目錄。
- mkdirs()
用mkdirs( )的方法。它創建目錄以及該目錄所有的父目錄。