File有三個構造方法(效果都一樣)
public File(String pathname) 根據一個路徑得到File對象
// File(String pathname):根據一個路徑得到File對象
// 把e:\\demo\\a.txt封裝成一個File對象
File f = new File("e:\\demo\\a.txt");
public File(String parent,
String child) 根據一個目錄和一個子文件/目錄得到File對象
// File(String parent, String child):根據一個目錄和一個子文件/目錄得到File對象
File f2 = new File("e:\\demo","a.txt");
public File(File parent,
String child) 根據一個父File對象和一個子文件/目錄得到File對象
// File(File parent, String child):根據一個父File對象和一個子文件/目錄得到File對象
File f3 = new File("e:\\demo");
File f4 = new File(f3,"a.txt");
File類的創建功能:
public boolean createNewFile():創建文件 如果存在這樣的文件,就不創建了(文件不等於文件夾)
注意:要想在某個目錄下創建內容(文件),該目錄首先必須存在。否則會報異常:
Exception in thread "main" java.io.IOException: 系統找不到指定的路徑。
//如果e:\demo不存在,則Exception in thread "main" java.io.IOException: 系統找不到指定的路徑。
File file = new File("e:\\demo\\a.txt");
file.creatNewFile();
public boolean mkdir():創建文件夾 如果存在這樣的文件夾,就不創建了
注意:要想在某個目錄下創建文件夾,該目錄首先必須存在。否則會創建失敗,方法返回false:
// File file5 = new File("e:\\test");
File file6 = new File("e:\\test\\aaa");
// System.out.println("mkdir:" + file5.mkdir());
System.out.println("mkdir:" + file6.mkdir());//false
public boolean mkdirs():創建文件夾,如果父文件夾不存在,會幫你創建出來
注意:無法創建文件,下列代碼的結果只是創建了一個名爲“a.txt"的文件夾
File file8 = new File("e:\\liuyi\\a.txt");
System.out.println("mkdirs:" + file8.mkdirs());
刪除功能:public boolean delete()
注意:要刪除一個文件夾,請注意該文件夾內不能包含文件或者文件夾
重命名功能:public boolean renameTo(File dest)
如果路徑名相同,就是改名。
如果路徑名不同,就是改名並剪切。如下:
"a.txt"剪切到"e:\\"下,並且重命名為"b.txt"
注意:前提是"e:\\"下不能已經存在"b.txt",否則返回false,重命名失敗
File file2 = new File("a.txt");
if (!file2.exists()) {
System.out.println(file2.createNewFile());
}
File newFile2 = new File("e:\\b.txt");
if (!newFile2.exists()) {
System.out.println("renameTo:" + file2.renameTo(newFile2));
}
完整代碼:
public class FileDemo {
public static void main(String[] args) throws IOException {
// 創建一個文件對象
File file2 = new File("a.txt");
if (!file2.exists()) {
System.out.println(file2.createNewFile());
}
// 需求:我要修改這個文件的名稱爲"b.txt"
File newFile2 = new File("e:\\b.txt");
if (!newFile2.exists()) {
System.out.println("renameTo:" + file2.renameTo(newFile2));
}else{
//newFile2.delete();
System.out.println("renameTo after delete:" + file2.renameTo(newFile2));
}
}
}
判斷功能:
public boolean isDirectory():判斷是否是目錄
public boolean isFile():判斷是否是文件
public boolean exists():判斷是否存在
public boolean canRead():判斷是否可讀
public boolean canWrite():判斷是否可寫
public boolean isHidden():判斷是否隱藏
獲取功能:
public String getAbsolutePath():獲取絕對路徑
public String getPath():獲取相對路徑
public String getName():獲取名稱
public long length():獲取長度。字節數
public long lastModified():獲取最後一次的修改時間,毫秒值
獲取功能:
public String[] list():獲取指定目錄下的所有文件或者文件夾的名稱數組
public File[] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組