異常,File基礎內容

1.概述

File 異常

2.異常

常見異常 異常名稱
ArithmeticException 編譯器異常
ArrayIndexOutOfBoundsException 數組角標越界異常
NullPointerException 空指針異常
Exception 其他異常

處理異常通常有兩種方式
(1). try…catch…finally
下面進行代碼演示


public class demo {
    public static void main(String[] args) {

        Scanner scanner=null;
        try{
            scanner= new Scanner(System.in);
            System.out.println("請輸入第一個數");
            int a = scanner.nextInt();
            System.out.println("請輸入第二個數");
            int b = scanner.nextInt();
            System.out.println(a / b);
        }catch(ArithmeticException e){

            e.printStackTrace();
        }finally {
            System.out.println("清理嘍");
            if(scanner !=null){
                scanner.close();
            }
        }
        System.out.println("dsfdgbdfe");
    }
}

```java
錯誤演示
請輸入第一個數
2
請輸入第二個數
0
清理嘍
dsfdgbdfe
java.lang.ArithmeticException: / by zero
 at demo3.demo.main(demo.java:15)


正確演示
請輸入第一個數
4
請輸入第二個數
2
2
清理嘍
dsfdgbdfe

(2).throws拋出的是類`

public class demo2 {
    public static void main(String[] args) throws NullPointerException,ArithmeticException,IndexOutOfBoundsException{
        test(1,0);
        System.gc();
    }

    private static void test(int i, int i1) {
        if(i1==0){
            throw new ArithmeticException("除數爲零了");
        }else{
            System.out.println(i/i1);
        }
    }
}

throw拋出的是對象,兩者有差距


public class demo {
    public static void main(String[] args){
        int num=100;
        Scanner scanner = new Scanner(System.in);
        System.out.println("shueujine");
        int i = scanner.nextInt();
        if(i<=num){
            num-=i;
        }else{
            throw  new NoMoneyException("餘額不足");
        }
    }
}

3.File

(1).創文件,話不多說上代碼


File file = new File("b.txt");
File file1 = new File("abc.txt");

file.createNewFile();
file1.createNewFile();
boolean b = file1.renameTo(file);
System.out.println(b);

(2).創單級文件夾,創多層文件夾,話不多說上代碼

這裏用到了mkdir()和mkdirs()兩個方法來創單級和多級文件夾

public class demo {
    public static void main(String[] args) throws IOException {

        File file = new File("D:\\abc");
        file.createNewFile();
        file.delete();
        File file1 = new File("D:\\9.2122\\BIN");
        file1.createNewFile();

        file1.delete();

        File file2 = new File("D:\\abcd");
        file2.mkdir();
        file2.delete();
        File file3 = new File("D:\\abcde\\abcd\\abc\\ab\\a");
        file3.mkdirs();
        boolean delete = file3.delete();
        System.out.println(delete);
    }
}

(3).刪除文件夾,話不多說上代碼

這裏指的是單層文件夾


public class sahndiaomeiyongde {
    public static void main(String[] args) {
        File file = new File("b.txt");
        file.delete();
    }
}

(4).刪除多層文件夾,話不多說上代碼

~~ 這個代碼牛逼了,有啥刪啥,無可披靡~~


public class zuoye {
    public static void main(String[] args) {
        //1.刪除多級文件夾 遞歸刪除
        File file = new File("D://abcde");////abcd//abc//ab//a"
        //file.mkdirs();
        digui(file);
    }
    public static void digui(File file){
        if(file==null){
            return;
        }
        if(file.exists()){//判斷文件是否存在哦
            if(file.isFile()){//是文件的話直接刪掉
                file.delete();
            }else if(file.isDirectory()){//是文件夾
                File[] files = file.listFiles();
                if(files==null){
                    return;
                }
                for (File file1 : files) {
                    digui(file1);//再將前面的步驟重複
                }
                file.delete();//刪除空文件
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章