day19 Java学习(异常&IO(File类))

 异常(异常的概述和分类)

   概述:Java运行过程中出现的错误。

   分类:

            * Throwable 

                * Error  (服务器宕机 , 数据库崩溃...)

                * Exception     

   异常继承体系:

            * Throwable 

                * Error 

                * Exception  

                      * RuntimeException  (运行时异常)

异常(try...catch的方式处理异常)

 try:用来检测异常的。

 catch:用来捕获异常的。

 finally:释放资源

 异常处理的两种方式:   

               1: try...catch...finally

                            * try   catch     

                             * try   catch  finally               

                             * try   finally   

                 2: throws

 try...catch处理异常的基本格式:

                          * try...catch...finally       

异常(throws的方式处理异常)

     throws的方式处理异常:

                           * 定义功能方法时,需要把出现问题暴露处理让调用者去处理。

                           * 那么就通过throws在方法上标识。

     

public void setAge(int age) throws Exception { //throws标识
        if (age<0) {
            //抛出一个异常
            throw new Exception("年龄不能少于0");
        }else if (age==0) {
            throw new Exception("年龄不能等于0");
        }else {
            this.age = age;
        }
        
    }
例子

异常(throw的概述以及throws的区别)

    throw的概述:在功能方法内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异常对象抛出。

    

    throw以及throws的区别:

       throw:

                  * 用在方法体内,跟的是异常对象名。

                  * 只能抛出一个异常对象名。                 

                  * 表示抛出异常,有方法体内的语句处理。            

       throws:

                  * 用在方法声明后面,跟的是异常类名。

                  * 可以抛出多个异常类名,用逗号隔开。                 

                  * 表示抛出异常,有方法的调用者处理。     

异常(finally关键字的特点及作用)

    finally的特点:

                   * 被finally控制的语句体一定会执行。

                   * 特殊情况:在执行到finally之前JVM退出了(比如System.exit( 0 ):退出JVM虚拟机)。

    finally的作用:

                   * 用于释放资源。(是try语句中的一个语句体,不能单独使用)

    注意:千万不要在finally里面写返回语句。(如果里面写了返回语句,那么try和catch的结果都会被改变)

异常(编译期异常和运行期异常的区别)

    Java的异常被分为两大类:编译期异常和运行期异常。

    所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译期异常。

    编译时异常:

              * Java程序必须显示处理,否则程序就会发生错误,无法通过编译。(比如文件找不到)

     运行时异常:

              * 无需显示处理,也可以和编译时异常一样处理。

异常(Throwable的常见方法)

               * getMessage( )  :获取异常信息,返回字符串

                * toString( )        : 获取异常类名和异常信息,返回字符串

                * printStackTrace( )  :获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void。

异常(自定义异常概述和基本使用)

    自定义异常概述:

                 * 继承自Exception 

                 * 继承自RuntimeException

异常(异常的注意事项及如何使用异常处理)

        异常的注意事项:

                 * 子类重写父类方法时,子类的方法必须抛出相同的异常或父类的子类。

                 * 如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是它的子集,子类不能抛出父类没有的异常。

                 * 如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常。如果子类方法内有异常抛出,那么子类只能try ,不能throws。

        

        如何使用异常处理:

                 * 原则:如果该功能内部可以将问题处理,用try,如果处理不了,交由调用者处理,这时用throws。

                 * 区别: 

                             * 后续程序需要继续运行就try

                              * 后续程序不需要继续运行就throws

                 * 如过JDK没有提供对应的异常,需要自定义异常。                         

File类(File的概述和构造方法)

        概述:

               * File更应该叫做一个路径。

               * 路径分为据对路径和相对路径。

               * 绝对路径是一个固定的路径,从盘符开始。

               * 相对路径相对于某个位置。

        构造方法:

                * File(String pathname):根据一个路径得到File对象。

                * File(String parent,String child):根据一个目录和一个子文件/目录得到File对象。
                * File(File parent,String child):根据父File对象和一个子文件/目录得到File对象。

      

File类(File类的创建功能)   

     创建功能:

                 * publuc boolean createNewFile( ) :创建文件(如果存在这样的文件,就不创建了)

                 * publuc boolean mkdirs( ) :创建文件夹(如果存在这样的文件夹,就不创建了)

     注意事项:

                 * 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

    public static void main(String[] args) throws IOException {
      //File类的创建功能
      File file =new File("test.txt");
      System.out.println(file.createNewFile()); //createNewFile():创建文件(如果存在这样的文件,就不创建了)
        
      File file2=new File("视频");
      File file3 =new File("testss.txt");      //这样写也可以,文件夹也是可以有后缀的。
      System.out.println(file2.mkdir());       //mkdir():创建文件夹(如果存在这样的文件夹,就不创建了)
      System.out.println(file3.createNewFile()); 
    
      File file4 =new File("视频\1.txt");
      System.out.println(file4.mkdirs());     //mkdirs():创建多级目录文件夹(如果存在这样的文件夹,就不创建了)
    }
File创建功能

File类(File类的重命名和删除功能)

     重命名和删除功能:

                 * publuc boolean renameTo(File dest):把文件重命名为指定的文件路径。

                 * publuc boolean  delete( ):删除文件或者文件夹。

     重命名注意事项:

                 * 如果路径名相同,就是改名。

                 * 如果路径名不相同,就是改名并剪切。

     删除注意事项:

                 * Java中的删除不走回收站。

                 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹。

  

File类(File类的判断功能)

    判断功能:

                 * publuc boolean isDirectory( ):判断是否是目录。

                 * publuc boolean isFile( ):判断是否是文件。 

                 * publuc boolean exists( ):判断是否存在。

                 * publuc boolean canRead( ):判断是否可读。 

                 * publuc boolean canWrite( ):判断是否可写。

                 * publuc boolean isHidden( ):判断是否隐藏。 

File类(File类的获取功能)

   获取功能:

                 * publuc String getAbsolutePath():获取绝对路径

                 * publuc String getPath():获取路径

                 * publuc String getName():获取名称

                 * publuc long length ( ):获取长度。(字节数 )

                 * publuc long lastModified ( ) :获取最后一次的修改时间,毫秒值

                  * publuc String [ ] list ( ) :获取指定目录下的所有文件或者文件夹的名称数组

                  * publuc File [ ] listFiles ( ) :获取指定目录下的所有文件或者文件夹的File数组

File类(输出指定目录下指定后缀的文件名)

    public static void main(String[] args) throws IOException {
        File dir = new File("D:\");
        File[] arr = dir.listFiles();
        for (File file : arr) {
            if (file.isFile() && file.getName().endsWith(".jpg")) {
                System.out.println(file);
            }
        }
例子
原文地址:https://www.cnblogs.com/feng0001/p/10947397.html