java基础-IO流和异常处理机制专题
java IO流知识和异常处理机制
java IO流知识和异常处理机制
异常
异常就是程序出现了不正常的情况。
异常的分类:
-
Throwable
-
Error 是严重的问题,解决不了
-
Exception
- RuntimeException 是程序运行过程中产生的问题,
主要是代码的问题。要修正代码的 - 非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
因为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流和异常机制学习路线图
说明:根据网络资料进行搜索学习理解整理 若有侵权联系作者