IO流---异常处理机制
来源:互联网 发布:企业查询软件 编辑:程序博客网 时间:2024/04/30 01:52
——- android培训、java培训、期待与您交流! ———-
IO异常处理机制
异常就是可以预见的错误,java中所有的异常都从Throwable类中继承,
不过在一般情况下都会由 Exception 类派生出来。
异常分为两个部分:
错误:出现错误,只能终止程序
异常:出现异常,可以处理异常
异常又分为两种:
运行时期异常,是由程序员自身错误造成的,也称为未检查异常,例如空指针异常、数组越界异常等。
非运行期异常:除运行期异常外,其他都属于非运行期异常,也叫检查异常
异常的声明:
异常声明是在方法的头部,利用关键字throws来表示此方法在运行的时候可能会出错。
其实就是声明一个异常类,在声明之后将其抛出。如实例1和实例3都有抛出异常
异常的抛出:
就是将异常抛给异常处理器,暂时不去处理它。
还有一种异常就是不断的抛出而不去进行处理,这是通过关键字throw来处理的。
因为他们的父类都是Exception,所以可以使用父类来代替所以的异常
异常抛出的模型:
方法名 throws Exception
{
throw Exception
}
检查异常可以分为很多种,主要分类如下:
SecurityException 由安全管理器抛出的异常,指示存在安全侵犯。
ArithmeticException 算术异常。例如,一个整数“除以零”时
ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常
NullPointerException 无空间对象异常。
IllegalArgumentException 向方法传递了一个不合法或不正确的参数。
NegativeArraySizeException 如果应用程序试图创建大小为负的数组,则抛出该异常。
ArrayIndexOutOfBoundsException 用非法索引访问数组时抛出的异常
IOException IO异常,当发生某种 I/O 异常时,抛出此异常
import java.io.*;class ExceptionDemo { public static void main(String[] args) { //在try之前创建文件流对象引用,try时再在内部初始化。 //因为finally要执行关闭流的操作 FileWriter fw = null; //检测异常 try{ //创建对象实体并与指定目录下的文件关联,如果目录不存在就会报找不到路径异常。 fw = new FileWriter("txt1\\txt-1.txt"); //写入数据到流中。 fw.write("Hello World"); } //捕获异常 catch (IOException e){ System.out.println("错误:"+e.toString()); } //最后要关闭流,关闭流也要检测异常。 finally{ try{ //先判断如果对象不为null,表示有对象实体--流,就关闭流 if(fw!=null) fw.close(); } catch (IOException e){ System.out.println("错误:"+e.toString()); } } }}
练习:
将某个文件从C盘复制到D盘
复制的原理:
其实就是将C盘下的文件数据存储到D盘的一个文件中。
步骤:
1、在D盘创建一个文件,用于存储C盘文件中的数据。
2、定义读取流和C盘文件关联。
3、通过不断的读写(循环读写)完成数据存储。
4、关闭资源。
可以用两种方式实现,如实例6和实例7,主要是实例7。
复制文本文件方式1
import java.io.*;class CopyFileDemo{ public static void main(String[] args) throws IOException{ //创建文件写入流--目的地 FileWriter fw = new FileWriter("txt\\txt-Copy.txt"); //创建文件读取流--源文件 FileReader fr = new FileReader("txt\\txt-1.txt"); //从文件读取流中读取所有文件到写入流中。 int ch = 0; while((ch=fr.read())!=-1){ fw.write(ch); } //关闭两个流 fw.close(); fr.close(); }}
由于上面的代码没有对程序可能出现的异常进行处理,
下面将详细检测和处理异常。并对代码进行优化。
import java.io.*;class CopyFileTest{ public static void main(String[] args) throws IOException{ //创建写入流和读取流的对象引用 FileWriter fw = null; FileReader fr = null; //检测异常 try{ //创建对象实体-源文件和目的文件 fw = new FileWriter("txt\\txt-1 附件.txt"); fr = new FileReader("txt\\txt-1.txt"); //创建字符数组,用于存储读到的字符数据 char[] buf = new char[1024]; int len = 0; while((len=fr.read(buf))!=-1){ //写入字符数组从0到len部分。一次性写入 fw.write(buf,0,len); } } //处理异常 catch (IOException e){ throw new RuntimeException("读写失败!"); } //最终要执行关闭2个流的动作。 finally{ //关闭前要判断流是否存在,存在就关闭,关闭动作也要进行异常处理 if(fr!=null) try{fr.close();} catch (IOException e){} if(fw!=null) try{fw.close();} catch (IOException e){} } }}
——- android培训、java培训、期待与您交流! ———-
- IO流---异常处理机制
- java--IO流-异常处理机制
- JAVA之IO技术异常处理机制
- IO流--IO异常的处理方式
- IO流(IO异常处理方式)
- IO流FileWriter的IO异常处理
- OOP,重写与重载,异常处理机制,多线程,集合框架,IO流 -- Java基础复习
- IO操作 IO异常处理
- IO流的异常处理方式
- 标准的IO流异常的处理
- NDK-CPP语言-异常处理+IO流
- IO流_throws的方式处理异常
- IO流(二)和异常处理
- IO 异常处理模式
- JAVA IO异常处理
- IO之异常处理
- IO异常 的处理
- IO异常的处理
- 10种简单的Java性能优化
- HTML5结合jquery-mobile移动端的使用
- 2015062607 - 游客
- Java数据结构 Comparable与Comparator
- 10个精妙的Java编码最佳实践
- IO流---异常处理机制
- 斯坦福大学公开课 :机器学习课程笔记-[第2集] 监督学习应用.梯度下降
- java学习之旅26--api文档_package的概念_生成自己项目的api文档
- Big Data Counting: How to count a billion distinct objects using only 1.5KB of Memory
- Linux CentOS7安装Tomcat7
- 黑马程序员-IOS学习笔记(六)Category(类别)
- 2015062608 - 真的很迷惑
- 配置hibernate根据实体类自动建表功能
- BZOJ1005