Map集合 异常机制 File类 I/O流
Posted 火丶日月明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map集合 异常机制 File类 I/O流相关的知识,希望对你有一定的参考价值。
1.Map集合(重点)
1.1 常用的方法
Set<Map.Entry<K,V>> entrySet() - 用于将Map集合转换为Set集合。
其中Map.Entry<K,V>是来自java.util包中的接口,常用方法如下:
K getKey() - 用于获取当前接口类型引用中的key值并返回。
V getValue() - 用于获取当前接口类型引用中的value值并返回。
Set<K> keySet() - 用于将Map集合中所有的键放入Set集合中并返回。
2.异常机制(重点、简单)
2.1 基本概念
java.lang.Throwable类是Java语言中所有错误(Error)或异常(Exception)的超类。
其中错误主要指在运行阶段出现的严重问题,通常无法通过编程解决,如:JVM挂掉。
其中异常主要指在运行阶段出现的不太严重的问题,通常可以编程解决,如:零做除数。
2.2 异常的分类
java.lang.Exception类是Java语言中所有异常的超类,具体分类如下:
RuntimeException类 - 运行时异常,也叫作非检测性异常
IOException和其它异常类 - 其它异常,也叫作检测性异常
- 所谓检测性异常就是指在编译阶段可以被编译器检查出来并报错的异常。
RuntimeException类的主要子类:
ArithmeticException - 算术异常
ArrayIndexOutOfBoundsException - 数组下标越界异常
NullPointerException - 空指针异常
ClassCastException - 类型转换异常
NumberFormatException - 数字格式异常
注意:
当程序执行过程中发生异常又没有手动处理时,则Java虚拟机采用默认方式处理,而默认处理方式就是:打印异常名称、异常原因、异常发生的位置,最后终止程序的执行。
2.3 异常的避免
对于绝大多数异常来说,都可以使用if()条件判断避免异常的发生。
2.4 异常的捕获
(1)语法格式
try{
编写所有可能发生异常的语句;
}
catch(异常类型 引用变量名){
编写针对该类型异常的处理语句;
}
... ...
finally{
编写无论是否发生异常都应该执行的语句;
}
(2)注意事项
当try{}中可能发生多种异常时,则应该编写多个catch分支,切记小类型放在大类型上面。
懒人的写法:
catch(Exception e){
e.printStackTrace(); //用于打印异常名称、原因、发生位置等信息。
}
finally{}中通常用于编写进行善后处理的语句,比如:关闭已经打开的文件等。
(3)执行流程
try{
a;
b; - 可能发生异常的语句;
c;
}
catch{
d;
}
finally{
e;
}
当程序没有发生异常时的执行流程:a b c e
当程序中发生异常时的执行流程: a b d e
2.5 异常的抛出
(1)基本概念
当程序中出现的异常无法处理或不便于处理时,则应该将该异常转移给该模块的调用者,这种方式叫异常的抛出。
(2)语法格式
访问控制符 返回值类型 方法名(形参列表) throws 异常类型1,异常类型2,...{}
如:
public void show() throws IOException {}
(3)方法重写的主要原则
a.要求方法名、参数列表和返回值类型相同,从jdk1.5开始允许返回子类。
b.访问权限不能变小,可以相等或者变大。
c.不能抛出更大的异常。
注意:
子类中重写的方法可以抛出和父类一样的异常、更小的异常以及不抛出异常,但不能抛出更大的异常、同级不一样的异常。
2.6 自定义异常
(1)自定义异常的由来
当程序中需要表达年龄不合理的异常时,Java官方并没有提供针对该业务的异常类型,此时若希望专门使用一个表达年龄不合理的异常,则需要程序员自定义异常类。
(2)基本流程
a.自定义xxxException类继承Exception类或者其子类;
b.在该类中提供两个版本的构造方法,一个是无参的构造方法,另外一个是字符串
做参数的构造方法。
(3)异常对象的抛出
throw new 异常类型();
如:
throw new AgeException();
3.File类(重点)
3.1 基本概念
java.io.File类用于描述文件和目录的相关信息,可以获取大小、最后一次修改时间等信息
3.2 常用的方法
File(String pathname) - 根据参数指定的路径信息来构造对象。
boolean exists() - 用于判断调用对象所表示的文件或目录是否存在。
String getName() - 用于获取文件或目录的名称。
long length() - 用于获取文件的长度/大小。
long lastModified() - 用于获取最后一次修改时间。
String getAbsolutePath() - 用于获取绝对路径信息并返回。
绝对路径 - 主要指以根目录开始的路径信息,如:c:/... d:/... /
相对路径 - 主要指以当前工作目录开始的路径信息,如:./code
- 以后的开发中推荐使用相对路径信息。
boolean delete() - 用于删除文件/目录。
boolean createNewFile() - 用于创建新的空文件。
boolean mkdir() - 用于创建单层目录。
boolean mkdirs() - 用于创建多级目录。
File[] listFiles() - 用于获取当前目录中的所有内容并返回。
boolean isFile() - 用于判断调用对象是否为一个普通文件。
boolean isDirectory() - 用于判断调用对象是否为一个目录。
以上是关于Map集合 异常机制 File类 I/O流的主要内容,如果未能解决你的问题,请参考以下文章