java基础-IO流和异常处理机制专题

java IO流知识和异常处理机制

异常

异常就是程序出现了不正常的情况。

异常的分类:

  • Throwable

    • Error 是严重的问题,解决不了

    • Exception

      • RuntimeException 是程序运行过程中产生的问题,
        主要是代码的问题。要修正代码的
      • 非RuntimeException 是我们必须进行处理的,否则,编译不能通过。

jvm的默认处理

  • 把异常的类名,错误原因,及行号等信息输出在了控制台。
    程序不能继续再执行了。

自己的处理方案

  • try…catch…finally

    • 基本格式

    • 变形格式:catch和finally不能单独使用

    • 多个catch的情况:

      • 子必须在前面
      • JDK7的新特性,平级关系的处理
  • throws throw

面试题:

  • 编译时期异常和运行时期异常的区别?
    编译时期是必须好处理的。
    运行时期可以处理,也可以不处理。
  • throw和throws的区别?
    throw 用在方法体中,后面跟的异常对象名称。
    如果该对象是RuntimeException的,方法上可以不写throws来声明。
    如果该对象是非RuntimeException的,必须在方法上有throws。

throws 用在方法声明上,后面跟的是异常的类名。
这样做其实是告诉方法的调用这,我有问题,你要注意列。
如果是RuntimeException,可以不处理。
如果是非RuntimeException,你就必须处理

  • 子父关系的异常问题

    • 子永远不能超过父亲。
  • finally的面试题

    • final,finally,finalize的区别
    • 在catch里面有return,finally的东西还运行吗?

自定义异常

File

java-IO
因为IO流操作的主要是文件或者文件夹,所以,java就提供了一个类File对文件或者文件夹进行表示。

构造方法:

  • File file = new File(“d:\demo\a.txt”);
  • File file = new File(“d:\demo”,“a.txt”);
  • File file = new File(“d:\demo”);
    File file2 = new File(file,“a.txt”);

常见的功能:

  • 创建功能
  • 删除功能
  • 重命名功能
  • 判断功能
  • 基本获取功能
  • 高级获取功能
  • 带过滤器的获取功能

递归

  • 方法定义中调用方法本身的现象

  • 注意事项:

    • 一定要有出口,否则死递归
    • 次数不能太多,否则内存溢出
    • 构造方法不能递归使用
  • 递归案例:

    • 递归求阶乘
    • 兔子问题
    • 递归遍历目录
    • 递归删除带内容的文件夹

字节流

可以操作任意类型的文件。

主要操作:图片,音视频文件。
操作文本文件不是特别方便。

继承体系

  • InputStream

    • FileInputStream
    • BufferedInputStream
  • OutputStream

    • FileOutputStream
    • BufferedOutputStream

案例:

  • 复制文本文件
  • 复制图片
  • 复制MP4

字符流

操作文本文件非常的方便。

继承体系

  • Reader

    • InputStreamReader

      • FileReader
    • BufferedReader

  • Writer

    • OutputStreamWriter

      • FileWriter
    • BufferedWriter

案例:

  • 复制文本文件
  • 从键盘录入到文本文件
  • 从文本文件到控制台输出
  • 从文本文件到文本文件
  • 从键盘录入到控制台输出

案例2:

  • 复制单极文件夹
  • 5个学生,按照总分排序。
  • 把登录注册用IO流改进

转换流

由于字节流操作文本文件不是很方便,所以,

java 就提供转换流,把字节流转换成字符流,
同时指定的编码表。默认情况下,
使用和操作系统一致的编码表。

转换流

  • 字符流 = 字节流+编码表
  • InputStreamReader
  • OutputStreamWriter

案例:

  • 键盘录入写到文本文件
  • 文本文件输出到控制台

其他的流

PrintWriter

ObjectInputStream/ObjectOutputStream

Properties(可以和IO流结合的集合)

DataInputStream/DataOutputStream

ByteArrayInputStream/ByteArrayOutputStream

CharArrayReader/CharArrayWriter

IO流和异常机制学习路线图

IO和异常学习路线图
说明:根据网络资料进行搜索学习理解整理 若有侵权联系作者

猜你喜欢

转载自blog.csdn.net/qq_35655602/article/details/106795682