File類的學習總結
一.File類的簡介
File類是java.io包中唯一代表磁碟本身的物件。可以通過File類中的方法,實現建立、刪除、重新命名檔案等操作。File類的物件主要是用來獲取檔案本身的一些資訊,如檔案所在的目錄、檔案的長度、檔案的讀寫許可權等。資料流可以將資料寫入到檔案中,檔案也是資料流最常用的資料媒體。
二.檔案的創建於刪除
通常可以使用以下3種構造方法來建立檔案 :
1.File(String pathname)
該構造方法通過將給定路徑名字串轉換為抽象路徑名來建立一個新File例項。
具體語法如下所示:
new File(String pathname)
pathname是指路徑名稱(包含檔名)。例如:
File f = new File("d:/txt");
2.File(String parent,String child)
該路徑根據構造方法定一個的父路徑和子路徑字串(包含檔名)建立一個新的File物件。
語法如下:
parent:父類路徑名。例如,D:/或者D:/file
child:子類路徑名。例如,children.txt。
3.File(File f,String child)
該構造方法根據parent的抽象路徑名和child路徑名字串建立一個新的File例項。
語法如下:
new File(File f,String child)
f:父路徑物件;例如,E:/或者E:/file
child:子路徑字串;例如,children.txt。
注意:在windows平臺中,檔案的路徑名字首由驅動器號和一個“:”組成。如果是絕對路徑名,還可能跟“\\”。
接下來舉一個例項:建立一個類FileDemo,判斷E盤中是否存在test.txt,若已存在,就將剛建立的物件刪除,若不存在,就建立一個新的檔案。因為E盤中存在此檔案所以輸出“檔案已刪除”。
import java.io.File; import java.io.IOException; public class FileDemo { public static void main(String []args){ File f = new File("test.txt"); if(f.exists()){ f.delete(); System.out.println("檔案已刪除"); } else{ try { f.createNewFile(); System.out.println("檔案已建立"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
輸出結果:
三. 獲取檔案資訊
在File類中,它提供了很多的方法。下面是一個表格,僅供參考。當然也可以參考API文件;
方法 | 返回值 | 說明 |
getName() | String | 獲取檔案的名稱 |
canRead() | boolean | 判斷檔案是否為可讀的 |
canWriter() | boolean | 判斷檔案是否為可被寫入 |
exits() | boolean | 判斷檔案是否存在 |
length() | long | 判斷檔案的長度(以位元組為單位) |
getAbsolutePath() | String | 獲取檔案的絕對路徑 |
getParent() | String | 判斷檔案的父路徑 |
isFile() | boolean | 判斷檔案是否存在 |
isDirectory() | boolean | 判斷檔案是否為一個目錄 |
isHidden() | boolean | 判斷是否為隱藏檔案 |
lastModified() | long | 獲取檔案最後修改時間 |
下面有個例項:獲取test.txt檔案的檔名、檔案長度、是否可讀、是否為隱藏檔案。
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String []args){
File f = new File("test.txt");
if(f.exists()){ //判斷檔名是否存在,如果存在
String filename=f.getName();
long length=f.length();
boolean b1=f.canRead();
boolean h1=f.isHidden();
System.out.println("輸出檔名"+filename);
System.out.println("輸出檔案長度"+length);
System.out.println("輸出檔案是否可讀"+b1);
System.out.println("輸出檔案是否隱藏"+h1);
}
else{
try {
f.createNewFile();
System.out.println("檔案已建立");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
因為檔案test.txt已經存在,所以會輸出一下結果;
輸出結果: