天天看點

javase複習——File檔案

目錄

    • File的構造器
    • 常用方法
      • 檔案建立
      • 檔案的删除
      • 檔案判斷
      • 檔案的擷取功能
      • 擷取目錄的子檔案
    • 遞歸查詢檔案夾的内部所有檔案
    • 删除一個檔案夾下的所有檔案(不包括目錄)
    • 删除一個檔案夾下的所有檔案(包括目錄)

File的構造器

javase複習——File檔案

在使用構造函數之後,這個File對象就存在了,你可以使用File.exists()來對其進行判斷,存在則傳回true。

Java使用介乎于UNIX和Windows的路徑方法,前斜線“/”可以正确解釋,而如果要使用反斜線“\”則需要進行轉義序列“\”,才能被解釋器正确解釋。

//都是正确的寫法
        File file = new File("C:\\demo.xsd");
        File file1 = new File("C:/demo.xsd");
           

很重要的一點就是,Java的File對象可以是檔案也可以是檔案夾。是以當你使用

File file=new File("/java");
           

傳回的是檔案夾,但是你在後面加一句

它就變成了一個txt檔案

常用方法

檔案建立

javase複習——File檔案
public static void main(String[] args) throws IOException {
        File file = new File("E:/test.java");
        boolean isSuccess = file.createNewFile();
        System.out.println(isSuccess);
        File file1 = new File("E:/我的目錄");
        boolean isSuc = file1.mkdir();
        System.out.println(isSuc);
        File file2 = new File("E:/我的目錄/目錄1/目錄11");
        boolean isSuc1 = file2.mkdirs();
        System.out.println(isSuc1);
    }
           

檔案的删除

javase複習——File檔案
public static void main(String[] args) throws IOException {
        File file1 = new File("E:/我的目錄");
        boolean isDeleteDir = file1.delete();
        System.out.println(isDeleteDir);
    }
           

檔案判斷

javase複習——File檔案
javase複習——File檔案
public static void main(String[] args) throws IOException {
        File file = new File("E:/hello.java");
        System.out.println("判斷檔案是否存在:" + file.exists());
        System.out.println("判斷是否是檔案:" + file.isFile());
        System.out.println("判斷是否是檔案夾:" + file.isDirectory());
        System.out.println("判斷檔案是否是絕對路徑:" + file.isAbsolute());
        System.out.println("判斷檔案是否可讀:" + file.canRead());
        System.out.println("判斷檔案是否可寫:" + file.canWrite());
        System.out.println("判斷檔案是否是隐藏:" + file.isHidden());
    }
           

檔案的擷取功能

javase複習——File檔案
public static void main(String[] args) throws IOException {
        File file = new File("E:/工作/java/課件/java SE/第1天初識Java SE/視訊/14.進制.avi");
        String aPath = file.getAbsolutePath();
        System.out.println(aPath);
        String path = file.getPath();
        System.out.println(path);
        String name = file.getName();
        System.out.println(name);
        long length = file.length();
        System.out.println(length);
        long time = file.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date = new Date(time);
        String timeStr = sdf.format(date);
        System.out.println(timeStr);
    }
           

擷取目錄的子檔案

javase複習——File檔案
public static void main(String[] args) throws IOException {
        //擷取可用的檔案系統根
        File[] files = File.listRoots();
        File[] var5 = files;
        int var4 = files.length;

        File file;
        for(int var3 = 0; var3 < var4; ++var3) {
            file = var5[var3];
            System.out.println(file);
        }

        System.out.println("------------------------------------");
        file = new File("E:/eclipse/eclipse/workspace/poker");
        File[] files1 = file.listFiles();
        File[] var7 = files1;
        int var6 = files1.length;

        for(int var12 = 0; var12 < var6; ++var12) {
            File file2 = var7[var12];
            System.out.println(file2);
        }

        System.out.println("---------------------------------------");
        String[] fileNames = file.list();
        String[] var8 = fileNames;
        int var14 = fileNames.length;

        for(var6 = 0; var6 < var14; ++var6) {
            String fileName = var8[var6];
            System.out.println(fileName);
        }

    }
           

遞歸查詢檔案夾的内部所有檔案

public static void main(String[] args) throws IOException {
        File file = new File("E:\\工作\\java\\課件\\java SE\\第1天初識Java SE");
        printFile(file);
    }

    public static void printFile(File file) {
        if (file.isDirectory()) {
            if (file.exists()) {
                ++level;
                File[] files = file.listFiles();
                File[] var5 = files;
                int var4 = files.length;

                for(int var3 = 0; var3 < var4; ++var3) {
                    File file1 = var5[var3];

                    for(int i = 0; i < level; ++i) {
                        System.out.print("\t");
                    }

                    String name = file1.getName();
                    System.out.println(name);
                    if (file1.isDirectory()) {
                        printFile(file1);
                    }
                }

                --level;
            }
        }
    }
           

删除一個檔案夾下的所有檔案(不包括目錄)

public static void main(String[] args) throws IOException {
        File file = new File("aa");
        deleteFile(file);
    }

    public static void deleteFile(File file) {
        if (file.isDirectory()) {
            if (file.exists()) {
                File[] files = file.listFiles();
                File[] var5 = files;
                int var4 = files.length;

                for(int var3 = 0; var3 < var4; ++var3) {
                    File file1 = var5[var3];
                    if (file1.isFile()) {
                        file1.delete();
                    } else {
                        deleteFile(file1);
                    }
                }
            }
        }
    }
           

删除一個檔案夾下的所有檔案(包括目錄)

public static void main(String[] args) throws IOException {
        File file = new File("aa");
        deleteFile(file);
    }

    public static void deleteFile(File file) {
        if (file.isDirectory()) {
            if (file.exists()) {
                File[] files = file.listFiles();
                File[] var5 = files;
                int var4 = files.length;

                for(int var3 = 0; var3 < var4; ++var3) {
                    File file1 = var5[var3];
                    if (file1.isFile()) {
                        file1.delete();
                    } else {
                        deleteFile(file1);
                        file1.delete();
                    }
                }
            }
        }
    }