Java語言中File類是唯一表示檔案物件和目錄物件的數據型別。在Java語言中檔案路徑分隔符使用‘/’或‘\\’(‘\\’中兩個斜線分別代錶轉譯字元和分隔符)
檔案可以儲存位元組或字元;目錄不能直接儲存位元組或字元,只能儲存檔案後子目錄。
檔案可以被讀取和寫入,而目錄不能執行讀寫操作,只能建立,刪除及獲取其中包含的子目錄及檔案。
對於檔案 和目錄通常要嚴格區分,File類提供方法可以判斷此File物件是檔案還是目錄。
/*
* 通過將給定路徑字串轉換爲抽象路徑名來建立檔案物件
*/
String pathName = "d:/one.txt";
File file = new File(pathName);
System.out.println(file == null);//無論給定的檔案虛擬路徑是否存在,file一定不是空的。建立檔案物件!=該檔案在硬碟中儲存
/*
* 根據parent抽象路徑名和child路徑名字串建立一個新File範例
*/
File file2 = new File(new File("d:/"),"two.txt");
/*
* 根據parent路徑名字串和child路徑名字串建立一個 新File範例
*/
File file3 = new File("d:/","three.txt");
/*
* 通過給定的file:URI轉化爲一個抽象路徑名來建立一個新的File範例
*/
URI uri = URI.create("file:/d:/four.txt");//建立URI物件時,路徑前需要加上file:/
File file4 = new File(uri);
/*
* 建立檔案物件
*/
String path = "d:/one.txt";
File file = new File(path);
/*
* 判斷檔案是否存在
*/
System.out.println(file.exists());//輸出結果爲false,因爲僅僅建立了檔案物件,並沒有在硬碟上儲存該檔案
/*
* 建立一個新檔案
*/
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(file.exists());//此時輸出結果爲true
/*
* 判斷檔案能否修改與讀取
*/
System.out.println(file.canRead());//判斷檔案是否能正常讀取
System.out.println(file.canWrite());//判斷檔案是否能正常修改
/*
* 刪除檔案
*/
file.delete();
System.out.println(file.exists());//刪除後輸出爲false
/*
* 建立檔案物件
*/
String pathName = "d:/one.txt";
File file = new File(pathName);
/*
* 建立一個新檔案
*/
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
/*
* 獲取檔案路徑
*/
String absolutePath = file.getAbsolutePath();//預設絕對路徑,從磁碟名到檔名的全路徑
String path = file.getPath();//預設相對路徑,得到的是構造file時的路徑
/*
* 獲取檔名
*/
String name = file.getName();//結果:one.txt
/*
* 獲取父目錄
*/
String parent = file.getParent();//結果:d:/
/*
* 判斷是目錄還是檔案
*/
file.isFile();//結果:true
file.isDirectory();//結果:false
/*
* 建立目錄
*/
File file2 = new File("d:/one");
file2.mkdir();//返回true
File file3 = new File("d:/1/2");
file3.mkdir();//返回false
file3.mkdirs();//返回true
/*
* 獲取目錄下所有檔名
*/
File file4 = new File("d:/a");
file4.mkdir();
for(int i=1;i<=10;i++) {
File file5 = new File("d:/a/"+i);
try {
file5.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}//以上爲建立即將提取的目錄
File []files = file4.listFiles();//獲取檔案陣列
for(File f:files) {
System.out.print(f.getName()+" ");
}