IO---1

API–IO流

异常(Exception)

异常概述和分类

    1 异常: 程序出现了不正常的情况.
    2 程序的异常:Throwable
            (1) 严重问题:Error(我们不处理 因为这种问题一般都是很严重的,比如说内存溢出)
            (2) 问题:Exception
                    编译期问题:不是RuntimeException的异常(必须进行处理的,因为你不
                              处理,编译就不能通过)

                    运行期问题:RuntimeException(这种问题我们也不处理,因为是你的问
                              题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的)
    3 如果程序出现了问题,我们没有做任何处理,最终jvm会做出默认的处理.
            把异常的名称,原因及出现的问题等信息输出在控制台.
            同时会结束程序.
    4 我们自己处理异常,java给我们提供了异常的处理方案
            A try...catch...finally
            B throws
    5 try...catch...finally的处理格式:
         a      try{
                    可能出现问题的代码;
                }catch(异常名 变量){
                    针对问题的处理
                }finally{
                    释放资源;
                }

         b  变形格式:
                    try{
                        可能出现问题的代码;
                    }catch(异常名 变量){
                        针对问题的处理
                    }
         c 注意:
                i try里面的代码越少越好
                ii catch里面必须有内容,哪怕是给出一个简单的提示
    6 多个异常处理
         a 每一个写一个try...catch
         b 写一个try,多个catch
                    try{
                        ...
                    }catch(异常类名 变量名){
                        ...
                    }catch(异常类名 变量名){
                        ...
                    }   
                    ...

                    注意事项:
                            i 能明确的尽量明确,不要用大的来处理.
                            ii  平级关系的异常谁前谁后无所谓,如果出现了子父关系,父必须在后面.
         c 注意:
                一旦try里面出了问题,就会在这里把问题给抛出去,然后和catch里面的问题进
                行匹配,一旦匹配成功的,就执行catch里面的处理,然后结束了try...catch
                继续执行后面的语句
    7 JDK7出现了一个新特性的异常处理方案:
                try{

                }catch(异常名1 | 异常名2 | ...    变量){
                    ...
                }

                注意事项:这个方法虽然简洁,但是也不够好.
                        i 处理方式是一致的.(实际开发中,好多时候可能就是针对同类型的
                          问题,给出同一个处理)
                        ii 多个异常间必须是平级关系.
    8 编译期异常和运行期异常的区别:
            编译期异常:JAVA程序必须显示处理,否则程序就会发生错误,无法通过编译
            运行期异常:无需显示处理,也可以和编译时异常一样处理
    9 异常中的几个方法:Throwable
            public String getMessage():异常的消息字符串
            public String toString():返回异常的简单信息描述
                    此对象的类的name(全路径名)
                    ": "(冒号和一个空格)
                    调用此对象getLocalizedMessage()方法的结果(默认返回的是
                    getMessage()的内容)
    (掌握)printStackTrace()   获取异常类名和异常信息,以及异常出现在程序中的位置.
            返回值void.把信息输出在控制台

Throws

    1 throws 定义功能方法时,需要把出现的问题暴露出来让调用者去处理.那么就通过throws在     
      方法上标识
    2 有些时候,我们可以对异常进行处理,但是又有些时候,我们根本就没有权限去处理某个异常.
      或者说,我处理不了,我就不处理了.
      为了解决出错问题,Java针对这种情况,就提供了另一种处理方案:抛出

            格式:
                    throws 异常类名
                    注意:这个格式必须跟在方法的括号后面.
            注意:
                    尽量不要在main方法上抛出异常.
            小结: 
                    编译期异常抛出,将来调用者必须处理
                    运行期异常抛出,将来调用者可以不用处理
    3 throw
            概述:在功能内部出现某种情况,程序不能继续运行,需要进行跳转时,就用throw把异
                 常对象抛出.

    4 **throws和throw的区别**
            throws:
                    用在方法声明后面,跟的是异常类名
                    可以跟多个异常类名,用逗号隔开
                    表示抛出异常,由该方法的调用者来处理
                    throws表示出现异常的一种可能性,并不一定会发生这些异常
            throw:
                    用在方法体内,跟的是异常对象名
                    只能抛出一个异常对象名
                    表示抛出异常,由方法体内的语句处理
                    throw则是抛出了异常,执行throw则一定抛出了某种异常
    5 finally
            被finally控制的语句体一定会执行

        注意:
            如果在执行到finally之前jvm退出了,就不能执行了
            作用:用于释放资源

File类

File概述

        File就是文件和目录(文件夹)路径名的抽象表现形式

File的构造方法

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

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

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

File的成员方法

创建功能

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

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

    public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来

删除功能

    public boolean delete()

重命名功能

    public boolean renameTo(File dest)
        如果路径名相同,就是改名。
        如果路径名不同,就是改名并剪切。

        路径以盘符开始:绝对路径    c:\\a.txt

        路径不以盘符开始:相对路径       a.txt

判断功能

  public boolean isDirectory():判断是否是目录

  public boolean isFile():判断是否是文件

  public boolean exists():判断是否存在

  public boolean canRead():判断是否可读

  public boolean canWrite():判断是否可写

  public boolean isHidden():判断是否隐藏

获取功能 1

  public String getAbsolutePath():获取绝对路径

  public String getPath():获取相对路径

  public String getName():获取名称

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

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

获取功能 2

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

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

递归

递归概述

      递归:方法定义中调用方法本身的现象

          注意事项:
                A:递归一定要有出口,否则就是死递归
                B:递归的次数不能太多,否则就内存溢出
                C:构造方法不能递归使用:

          实现步骤:
                A:写一个方法

                B:出口条件

                C:规律

你可能感兴趣的:(Java-IO)