1 java.io.File類
1.1 構造方法
-
參數爲路徑名字符串類型:public File(String pathname)
舉例代碼
File file = new File("C:/XXX");
-
傳入父路徑名和子路徑名:public File(String parentPath , String childPath)
舉例代碼
public File("C:/aa", "aa.txt");
-
傳入父級對象和子路徑名:public File(File parentFile , Stirng childPath )
舉例代碼
File parentDir = new File("d:\\aaa"); String child = "bbb.txt"; File file4 = new File(parentDir, child);
1.2 常用方法
-
public String getName() :返回由此File表示的文件或目錄的名稱
-
public long length()
:返回由此File表示的文件的長度 -
public String getPath() :將此File轉換爲路徑名字符串。
-
public long lastModified() :返回File對象對應的文件或目錄的最後修改時間(毫秒值)
-
public boolean exists() :此File表示的文件或目錄是否實際存在
-
public boolean isDirectory() :此File表示的是否爲目錄
-
public boolean isFile() :此File表示的是否爲文件
-
public boolean canRead() :判斷File對象對應的文件或目錄是否可讀
-
public boolean canWrite() :判斷File對象對應的文件或目錄是否可寫
-
public boolean isHidden() :判斷File對象對應的文件或目錄是否是否隱藏
-
public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。
示例代碼
File f = new File("d:/aaa.txt"); f.createNewFile();
-
public boolean delete() :刪除由此File表示的文件或目錄。 只能刪除空目錄。
示例代碼
f.delete();
-
public boolean mkdir() :創建由此File表示的目錄。
-
public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。
1.3 相對路徑與絕對路徑
-
絕對路徑:從盤符開始的路徑,這是一個完整的路徑。
實例代碼
File file = new File("d:\\java\\HelloIO.java");
-
相對路徑:相對於項目目錄的路徑,這是一個便捷的路徑,開發中經常使用。
示例代碼
File file = new File("./HelloIO.java"); // "./"表示當前項目下
1.4 目錄的遍歷
1.4.1 常用方法
- public String[] list() :返回一個String數組,表示該File目錄中的所有子文件或目錄。
- public File[] listFiles() :返回一個File數組,表示該File目錄中的所有的子文件或目錄
- public File[] listFiles(FileFilter filter) :返回所有滿足指定過濾器的文件和目錄
- public File[] listFiles(FilenameFilter filter) :返回所有滿足指定過濾器的文件和目錄
1.4.2 方法的運用示例
例如使用遞歸實現打印指定目錄下的文件名(目錄不止一級)
示例代碼
public class Test {
public static void main(String[] args) {
/*
* 遍歷指明目錄下的所有[不止一級]的文件,輸出所有的文件名
*/
File file = new File("c:/bbb"); //bbb文件目錄下存在多層子目錄和文件
show(file);
}
public static void show(File file){
File[] listFiles = file.listFiles(); //得到File目錄中的所有的子文件或目錄,返回File類型
for (File file2 : listFiles) { //遍歷
if(file2.isFile()){ //判斷當前File是否是文件
System.out.println(file2.getName()); //打印文件名
}
else if(file2.isDirectory()){ //當前文件類型爲目錄類型
System.out.println(file2.getName()); //得到目錄名
show(file2); //遞歸打印
}
}
}
}