异常,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();//删除空文件
            }
        }
    }
}
发布了43 篇原创文章 · 获赞 7 · 访问量 1773

猜你喜欢

转载自blog.csdn.net/y18791050779/article/details/103059478