44、File類簡介
阿新 • • 發佈:2018-12-19
使用File類建立資料夾
File類在java.io包下,看名字應該可以猜到,這個類是跟資料夾操作有關,下面使用File類中的方法在硬碟中建立資料夾。
package com.sutaoyu.file; import java.io.File; import java.io.IOException; public class test_1 { public static void main(String[] args) throws IOException { //如果檔案存在,就不建立了,返回false,如果不存在就會建立,返回true File file1 = newFile("D:\\hello.txt"); System.out.println(file1.createNewFile()); //如果資料夾存在,就不建立了,返回false,如果不存在就會建立,返回true File file2 = new File("D:\\new"); System.out.println(file2.mkdirs()); //可以建立多級目錄,如果資料夾存在,就不建立了,返回false,如果不存在就會建立,返回true File file3 = newFile("D:\\onkey\\1024"); System.out.println(file3.mkdirs()); //只能建立資料夾 File file4 = new File("D:\\monkey\\1024.txt"); System.out.println(file4.mkdirs()); //如果不寫碟符,會預設在專案的根目錄裡面建立 File file5 = new File("1026.txt"); System.out.println(file5.createNewFile()); System.out.println(file5.exists()); } }
注意:如果沒有寫碟符路徑,預設在專案路徑裡面建立
使用File類重新命名和刪除檔案
- public boolean renameTo(File dest):把檔案重新命名為指定的檔案路徑
- public boolean delete():刪除檔案或者資料夾
package com.sutaoyu.file; import java.io.File; public class test_2 { public static void main(String[] args) { // //舊名字 // File oldFile = new File("D:\\hello.txt"); // //新名字 // File newFile = new File("D:\\world.txt"); // oldFile.renameTo(newFile); //舊名字 // File oldFile = new File("D:\\world.txt"); // //新名字 // File newFile = new File("D:\\monkey\\java.txt"); // //如果兩個檔案路徑不一致,則會將舊檔案剪下到新的檔案路徑中再重新命名 // oldFile.renameTo(newFile); // // //不會將檔案放到回收站中,而是直接刪除 // File del = new File("D:\\monkey\\java.txt"); // //刪除 // System.out.println(del.delete()); //如果資料夾下有其他檔案,則不會刪除 File del1 = new File("D:\\monkey"); System.out.println(del1.delete()); } }
注意:
- 重新命名時,如果兩個路徑不相同,則會將被修改的檔案進行剪下,然後再重新命名放到新的路徑裡面
- 刪除時不會放入回收站,並且要確保被刪除的檔案裡面沒有其他檔案才可以進行刪除
File類中關於判斷的方法
- public boolean isDirectory():判斷是否是目錄
- public boolean isFile():判斷是否是檔案
- public boolean exists():判斷是否存在
- public boolean isHidden():判斷是否隱藏
package com.sutaoyu.file; import java.io.File; public class test_3 { public static void main(String[] args) { //判斷是否是資料夾 File file1 = new File("D:\\monkey"); System.out.println(file1.isDirectory()); //判斷是否是檔案 System.out.println(file1.isFile()); //判斷是否是資料夾 File file2 = new File("D:\\new.txt"); System.out.println(file2.isDirectory()); //判斷是否是檔案 System.out.println(file2.isFile()); //判斷檔案是否存在 System.out.println(file2.exists()); //判斷檔案是否隱藏 File file3 = new File("D:\\hidden"); System.out.println(file3.isHidden()); } }
File類其他常用方法
- public String getAbsolutePath():獲取絕對路徑
- public long length():獲取檔案大小。位元組數
- public long lastModified():獲取最後一次的修改時間,毫秒值
- public String[] list():獲取檔案路徑下所有檔名(同一層級目錄)
- public File[] listFiles():獲取檔案路徑下所有File物件陣列
package com.sutaoyu.file; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class test_4 { public static void main(String[] args) { File file1 = new File("1024.txt"); //檢視絕對路徑 System.out.println(file1.getAbsolutePath()); //檔案的大小,單位是位元組 System.out.println(file1.length()); //最後修改時間 Date date = new Date(file1.lastModified()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sdf.format(date)); File file2 = new File("F:\\monkey1024\\01-JavaSE\\程式碼\\code\\chapter-08"); //獲取目錄下的同級檔案或資料夾的名稱 String[] nameArray = file2.list(); for(String name : nameArray){ System.out.println(name); } //獲取目錄下的同級檔案或資料夾的File物件 File[] fileArray = file2.listFiles(); //打印出檔案的絕對路徑 for(File file : fileArray){ System.out.println(file); } } }
練習:
統計專案根目錄下以.txt結尾的檔案數量,並將檔名打印出來
分析:
獲取專案根目錄下的檔名
對檔名進行判斷是否是以.txt結尾
程式碼實現:
package com.sutaoyu.file; import java.io.File; public class test_5 { public static void main(String[] args) { File file = new File("D:\\java\\Eclipse\\chapter-08\\files\\"); File[] fileArray = file.listFiles(); //統計出現次數 int count = 0; for(File name : fileArray) { String s = name.toString(); //判斷是否是以.txt檔案結尾 if(s.endsWith(".txt")) { if(name.isFile()) { count++; System.out.println(count); } } } System.out.println("以.txt檔案結尾的數量是" + count + "個"); } }