Java文件中的File類

Java文件中的File類

File類
java.il.File類,文件和目錄路徑名的抽象表示形式。
Java把電腦中的文件和文件夾(目錄)封裝爲一個File類,我們可以使用File類對文件和文件夾進行操作。
File類是一個與系統操作無關的類,任何操作系統都可以使用這個類中的方法。

file:文件 — directory : 文件夾/目錄 — path:路徑

File類的構造方法:
File(String parent, String child)
根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。
參數:把路徑分爲兩部分
String parent:父路徑
String child : 子路徑
好處:
父路徑和子路徑,可以單獨書寫,使用起來非常靈活。
File(File parent, String child)

File類的常用方法

public static void main(String[] args) {
        File file = new File("src.txt");
        System.out.println("文件名稱"+file.getName());
        System.out.println("文件的相對路徑"+file.getPath());
        System.out.println("文件的絕對路徑"+file.getAbsolutePath());
        System.out.println("文件的父路徑"+file.getParent());
        System.out.println(file.canRead()?"文件可讀":"文件不可讀");
        System.out.println(file.canWrite()?"文件可寫":"文件不可寫");
        System.out.println("最後修改的時間"+file.lastModified());
        System.out.println("文件的大小"+file.length()+"bytes");
       // System.out.println("是否成功刪除文件"+file.delete());
    }

遍歷目錄下的文件

 public static void main(String[] args) {
        File file = new File("c:\\IdeaProjects");
        if(file.isDirectory()){
            String[] names = file.list();
            for(String name:names){
                System.out.println(name);
            }
        }
    }

過濾目錄中只含.java後綴名的文件

 public static void main(String[] args) {
        File file = new File("C:\\IdeaProjects\\untitled1\\src\\Demo06\\src");
        //創建過濾器對象
        FilenameFilter filter = new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                File currFile = new File(dir,name);
                if(currFile.isFile()&&name.endsWith(".java")){
                    return true;
                }else
                return false;
            }
        };
        if(file.exists()){
            String[] lists = file.list(filter);
            for(String name : lists){
                System.out.println(name);
            }
        }
    }

過濾目錄文件下(子目錄)所有文件

public static void main(String[] args) {
        File file = new File("c:\\IdeaProjects");
        fileDir(file);
    }
    public static void fileDir(File dir){
        File[] files = dir.listFiles();//獲得表示目錄的所有文件
        for(File file:files){           //遍歷所有的子目錄和文件
            if (file.isDirectory()){
                fileDir(file);           //如果是目錄,遞歸調用fileDir()
            }
            System.out.println(file.getAbsolutePath());//輸出文件的絕對路徑
        }
    }

刪除文件及目錄

  public static void main(String[] args) {
        File file = new File("C:\\新建文件夾");//創建一個代表目錄的file對象
        deleteDir(file);                    //調用deleteDir刪除方法
    }
    public static void deleteDir(File dir){
        if(dir.exists()){                   //判斷傳入的File對象是否存在
            File[] files = dir.listFiles(); //獲得file數組
            for (File file:files){          //遍歷所有的子目錄和文件
                if (file.isDirectory()){
                    deleteDir(file);        //如果是目錄,遞歸調用deleteDir()
                }else {
                    //如果是文件,直接刪除
                    file.delete();
                }
            }
            //刪除完這個目錄裏的所有文件後,就刪除這個目錄
            dir.delete();
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章