1. 程式人生 > >java SE :檔案基本處理 File、FileFilter、FileNameFilter

java SE :檔案基本處理 File、FileFilter、FileNameFilter

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;
    }
}