java SE :檔案基本處理 File、FileFilter、FileNameFilter
阿新 • • 發佈:2018-11-10
File
對目錄及檔案的建立、重新命名、刪除、檔案列表、判斷是否存在
建構函式
// 完整的目錄或檔案路徑 public File(String pathname) //父級目錄/檔案路徑+子級目錄/路徑 public File(String parent, String child) //父級目錄/檔案物件 + 子級目錄/路徑 public File(File parent, String child) // URI 物件 public File(URI uri)
// File 物件即可代表目錄,亦可代表檔案 File file=new File("H:\\Java 45"); File file1=new File("H:\\Java 45\\JDBC\\事務.ppt"); File file2=new File("H:\\Java 45\\01-JavaSE知識","day01(計算機基礎知識&jdk安裝&識別符號)"); System.out.println(file2.exists()); File file3=new File("H:\\Java 45\\JDBC","代理.ppt"); System.out.println(file3.exists()); File file4=new File(new File("H:\\Java 45\\01-JavaSE知識"),"day01(計算機基礎知識&jdk安裝&識別符號)"); System.out.println(file4.exists()); File file5=new File(new File("H:\\Java 45\\JDBC"),"代理.ppt"); System.out.println(file5.exists());
判斷檔案/目錄是否存在
public boolean exists()
判斷檔案/目錄
public boolean isDirectory() public boolean isFile()
建立檔案/目錄
// 建立一個目錄 public boolean mkdir() // 建立所有目錄 public boolean mkdirs() // 建立一個檔案 public boolean createNewFile()
獲取目錄下所有檔案/目錄
public File[] listFiles()
重新命名檔名
public boolean renameTo(File dest)
// 原檔案
File file1=new File("H:\\Intellij IDEA 教程_任小龍\\常用快捷鍵.txt");
// 將原檔名更改為目標檔案
file1.renameTo(new File("H:\\Intellij IDEA 教程_任小龍\\常用快捷鍵a.txt"));
刪除檔案/目錄
public boolean delete()
FileFilter、FileNameFilter :檔案/目錄過濾
public class FileFilterTest { public static void main(String[] args) { File file=new File("H:\\Intellij IDEA 教程_任小龍"); File[] files=file.listFiles(new ExtensionFilter()); for(int i=0;i<files.length;i++){ System.out.println(files[i].getAbsolutePath()); } } } // 僅獲取為目錄 或檔案以 .txt 結束檔案class ExtensionFilter implements FileFilter{ @Override public boolean accept(File pathname) { if (pathname.isDirectory()) return true; if (pathname.isFile()){ if(pathname.getName().indexOf(".txt")>-1) return true; } return false; } }
public class FileNameFilterTest { public static void main(String[] args) { File file=new File("H:\\Intellij IDEA 教程_任小龍"); File[] files=file.listFiles(new ExtenstionNameFilter()); for(int i=0;i<files.length;i++){ System.out.println(files[i].getAbsolutePath()); } } } // 該方法難以直接判斷目錄或檔案 class ExtenstionNameFilter implements FilenameFilter{ @Override // 父級目錄 name public boolean accept(File dir, String name) { if (name.lastIndexOf(".txt")>-1) return true; return false; } }