zoukankan      html  css  js  c++  java
  • IO流(一)

    1:异常(理解)
    (1)程序出现的不正常的情况
    (2)异常的体系:
    Throwable
    |--Error 严重问题,我们不处理。这种问题一般都是很严重的,比如说内存溢出。
    |--Exception 问题:
      |--RuntimeException 运行期异常,我们需要修正代码
      |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
    (3)异常的处理:
     A:JVM的默认处理
      把异常的名称,原因,位置等信息输出在控制台,但是程序不能继续执行。
     B:自己可以处理
      a:try...catch...finally
      自己编写处理代码,后面的程序可以继续执行。
      b:throws
      把自己处理不了的,在方法上声明,告诉调用者,这里有问题。

    try...catch...finally的处理格式:

    try {
         可能出现问题的代码;
         }catch(异常名 变量) {
             针对问题的处理;
         }finally {
             释放资源;
     }
     
    变形格式:
     try {
         可能出现问题的代码;
         }catch(异常名 变量) {
             针对问题的处理;
     }    

      注意:
      A:try里面的代码越少越好;
      B:catch里面必须有内容,哪怕是给出一个简单的提示。

    JDK7出现了一个新的异常处理方案:

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

     注意:这个方法虽然简洁,但是也不够好。
      A:处理方式是一致的。(实际开发中,好多时候可能就是针对同类型的问题,给出同一个处理)
      B:多个异常间必须是平级关系


    (4)面试题
     A:编译期异常和运行期异常的区别?
      编译期异常:Java程序必须显示处理,否则程序就会发生错误,无法通过编译。
      运行期异常:无需显示处理,也可以和编译时异常一样处理。
     B:throw和throws是的区别
     throw:

    • 用在方法体内,跟的是异常对象名
    • 只能抛出一个异常对象名;
    • 表示抛出异常,由方法体内的语句处理
    • throw则是抛出了异常,执行throw则一定抛出了某种异常。

     throws:

    格式:
      throws 异常类名

    • 用在方法声明后面,跟的是异常类名
    • 可以跟多个异常类名,用逗号隔开;
    • 表示抛出异常,由该方法的调用者来处理
    • throws表示出现异常的一种可能性,并不一定会发生这些异常。

    (5)finally关键字及其面试题
     A:finally用于释放资源,它的代码永远会执行。
     B:面试题
      a:final,finally,finalize的区别?

      final:最终的意思,可以修饰类,成员变量,成员方法。
        修饰类,类不能被继承;
        修饰变量,变量是常量;
        修饰方法,方法不能被重写。
      finally:是异常处理的一部分,用于释放资源。
        一般来说,代码肯定会执行,特殊情况:在执行到finally之前jvm退出了
      finalize:是Object类的一个方法,用于垃圾回收。


      b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后
      会,前。

     C:异常处理的变形

    • try...catch...finally
    • try...catch...
    • try...catch...catch...
    • try...catch...catch...fianlly
    • try...finally

    (6)自定义异常
      继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可。
    (7)异常的注意实现

     1:子类重写父类方法时,子类的方法必须抛出相同的异常或父类异常的子类。(父亲坏了,儿子不能比父亲更坏)。
     2:如果父类抛出了多个异常,子类重写父类时,只能抛出相同的异常或者是他的子集,子类不能抛出父类没有的异常。
     3:如果被重写的方法没有异常抛出,那么子类的方法绝对不可以抛出异常,如果子类方法内有异常发生,那么子类只能try,不能throws。

    2:File(掌握)
    (1)IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件。
    (2)构造方法

    1.File file = new File("e:\demo\a.txt");
    2.File file = new File("e:\demo","a.txt");
    
    3.File file = new File("e:\demo");
    File file2 = new File(file,"a.txt");


    (3)File类的功能
    A:创建功能

    • public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
    • public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
    • public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来

    B:删除功能

    • public boolean delete()
    • 1:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
    • 2:Java中的删除不走回收站。
    • 3:要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

    C:重命名功能

    • public boolean renameTo(File dest)
    • 如果路径名相同,就是改名。
    • 如果路径名不同,就是改名并剪切。
    • 路径以盘符开始:绝对路径 c:\a.txt
    • 路径不以盘符开始:相对路径 a.txt

    D:判断功能

    • public boolean isDirectory():判断是否是目录
    • public boolean isFile():判断是否是文件
    • public boolean exists():判断是否存在
    • public boolean canRead():判断是否可读
    • public boolean canWrite():判断是否可写
    • public boolean isHidden():判断是否隐藏

    E:获取功能

    • public String getAbsolutePath():获取绝对路径
    • public String getPath():获取相对路径
    • public String getName():获取名称
    • public long length():获取长度。字节数
    • public long lastModified():获取最后一次的修改时间,毫秒值

    F:高级获取功能

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

    G:过滤器功能

    • public String[] list(FilenameFilter filter)
    • public File[] listFiles(FilenameFilter filter)

    (4)案例:
     A:输出指定目录下指定后缀名的文件名称
      a:先获取所有的,在遍历的时候判断,再输出
      b:先判断,再获取,最后直接遍历输出即可
     B:批量修改文件名称

  • 相关阅读:
    自定义ViewGroup基础巩固2---onMeasure()学习及综合实现圆形菜单
    Django自定义模板函数
    django迁移:全局、局部
    setup.py
    企鹅去北极熊家里玩
    python插入记录后获取最后一条数据的id
    清除浮动和解决塌陷
    html知识代码
    django模型:为已存在的表建立模型
    django模型:字段和选项
  • 原文地址:https://www.cnblogs.com/crazypokerk/p/9085239.html
Copyright © 2011-2022 走看看