Java文件類以抽象的方式表明文件名和目錄路徑名。該類主要用於文件和目錄的建立、文件的查找和文件的刪除等。
File對象表明磁盤中實際存在的文件和目錄。能夠經過如下構造方法建立一個File對象:數組
public File(String pathName)
:以pathname爲路徑建立File對象,能夠是 絕對路徑或者相對路徑,若是pathname是相對路徑,則默認的當前路徑在系統屬性user.dir中存儲。public File(String parent,String child)
:以parent爲父路徑,child爲子路徑建立File對象。public FIle(File parent,String child)
:根據一個父File對象和子文件路徑建立File對象public File(URI uri)
:經過將給定的 file: URI 轉換成一個抽象路徑名來建立一個新的 File 實例。@Test public void test1(){ // 構造器1: File f1 = new File("Hello.txt");// 相對於當前Module的路徑 File f2 = new File("D:\\code\\Java\\JavaSenior\\Day07\\Hello.txt");// 使用絕對路徑 // 構造器2: File f3 = new File("D:\\code\\Java\\JavaSenior","Day07"); File f4 = new File("D:\\code\\Java\\JavaSenior\\Day07","hello.txt"); // 構造器3: File f5 = new File(f3,"hello.txt"); System.out.println(f1); System.out.println(f2); System.out.println(f3); System.out.println(f4); System.out.println(f5); }
獲取功能方法ide
@Test public void test2(){ File f1 = new File("Hello.txt"); File f2 = new File("D:\\code\\Java\\IOTest");// 使用絕對路徑 System.out.println(f1.getAbsoluteFile()); System.out.println(f1.getPath()); System.out.println(f1.getName()); System.out.println(f1.getParent()); System.out.println(f1.length()); System.out.println(f1.lastModified()); System.out.println("-----------------------"); System.out.println(f2.getAbsoluteFile()); System.out.println(f2.getPath()); System.out.println(f2.getName()); System.out.println(f2.getParent()); System.out.println(f2.length()); System.out.println(f2.lastModified()); }
輸出結果:測試
D:\code\Java\JavaSenior\Day07\Hello.txt Hello.txt Hello.txt null 48 1573625332155 ----------------------- D:\code\Java\IOTest D:\code\Java\IOTest IOTest D:\code\Java 0 1573626319416
list()
方法和listFiles()
方法的測試:idea
@Test public void test3(){ File f = new File("D:\\code\\Java\\JavaSenior"); String[] list = f.list(); for(String s : list){ System.out.println(s); } System.out.println(); File[] files = f.listFiles(); for (File file : files){ System.out.println(file); } }
運行結果:code
.idea Day01 Day02 Day03 Day04 Day05 Day06 Day07 JavaSenior.iml out src D:\code\Java\JavaSenior\.idea D:\code\Java\JavaSenior\Day01 D:\code\Java\JavaSenior\Day02 D:\code\Java\JavaSenior\Day03 D:\code\Java\JavaSenior\Day04 D:\code\Java\JavaSenior\Day05 D:\code\Java\JavaSenior\Day06 D:\code\Java\JavaSenior\Day07 D:\code\Java\JavaSenior\JavaSenior.iml D:\code\Java\JavaSenior\out D:\code\Java\JavaSenior\src
判斷功能方法對象
測試代碼:get
@Test public void test5(){ File f1 = new File("Hello.txt"); // 文件 System.out.println(f1.isDirectory()); System.out.println(f1.isFile()); System.out.println(f1.exists()); System.out.println(f1.canRead()); System.out.println(f1.canWrite()); System.out.println(f1.isHidden()); }
運行結果:it
false true true true true false
文件重命名io
說明:要想renameTo返回True,那麼重命名的源文件呢在硬盤中必須存在,重名後的文件在硬盤中不能存在。ast
@Test public void test4(){ //要想renameTo方法返回true,那麼須要f1在硬盤是存在的,且f2是不能存在硬盤的 File f1 = new File("Hello.txt"); File f2 = new File("D:\\code\\Java\\IOTest\\hi.txt"); boolean isRename = f1.renameTo(f2); System.out.println(isRename); }
實現文件或者目錄在硬盤的建立和刪除
注意:若是你建立文件或者文件目錄沒有寫盤符路徑 ,那麼 ,默認在項目路徑下 。
@Test public void test6() throws IOException { // 文件的建立和刪除 File f1 = new File("zabbix.txt"); if (!f1.exists()){ f1.createNewFile(); System.out.println("建立成功"); }else { f1.delete(); System.out.println("刪除成功"); }