Java 语法学习笔记(三)


[TOC]

参考教程

菜鸟教程 --- Java 教程

IBM --- Java 编程简介,第 2 部分

C语言中文网 --- Java异常处理

Java 异常

异常的分类

Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常

  1. 检查性异常

    程序员无法预见的异常

    从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过

  2. 运行时异常

    程序员可预见的异常,编译时可忽略

    属于不检查异常,程序中可以选择捕获处理,也可以不处理

  3. 错误(Error)

    脱离程序员控制的错误

    Error 类型通常是灾难性的致命错误,不是程序可以控制的

异常的产生和处理

Java 通过面向对象的方法来处理异常。在一个方法的运行过程中,如果发生了异常,则这个方法会产生代表该异常的一个对象,并把它交给运行时的系统,运行时系统寻找相应的代码来处理这一异常。
把生成异常对象,并把它提交给运行时系统的过程称为拋出(throw)异常。运行时系统在方法的调用栈中查找,直到找到能够处理该类型异常的对象,这一个过程称为捕获(catch)异常。

try-catch 语句用于捕获并处理异常,finally 语句用于在任何情况下(除特殊情况外)都必须执行的代码,throw 语句用于拋出异常,throws 语句用于声明可能会出现的异常

如果代码在 try 内部执行一条 System.exit() 语句,则应用程序将终止而不会执行 finally

异常的使用原则

异常处理不应用来控制程序的正常流程,其主要作用是捕获程序在运行时发生的异常并进行相应处理。

  1. 在当前方法声明中使用 try catch 语句捕获异常
  2. 一个方法被覆盖时,覆盖它的方法必须拋出相同的异常或异常的子类
  3. 如果父类抛出多个异常,则覆盖方法必须拋出那些异常的一个子集,而不能拋出新异常

Java 自定义异常

  1. 所有异常都必须是 Throwable 的子类、

    如果希望写一个检查性异常类,则需要继承 Exception 类

    如果想写一个运行时异常类,那么需要继承 RuntimeException 类

  2. 自定义异常类一般包含两个构造方法:一个是无参的默认构造方法,另一个构造方法以字符串的形式接收一个定制的异常消息,并将该消息传递给超类的构造方法

Java 输入输出流

分类

  • 流的方向:输入流和输出流
  • 数据单位:字节流和字符流
  • 功能:节点流和处理流

Java输入输出流

  • Java 中所有输入流都是 InputStream 抽象类(字节输入流)和 Reader 抽象类(字符输入流)的子类
  • Java 中所有输出流类都是 OutputStream 抽象类(字节输出流)和 Writer 抽象类(字符输出流)的子类

Java 系统流

每个 Java 程序运行时都带有一个系统流,系统流对应的类为 java.lang.System。Sytem 类封装了 Java 程序运行时的 3 个系统流,分别通过 in、out 和 err 变量来引用。

File 类

  • Java 中的 File 类是文件和目录路径名的抽象形式

  • Java File 类是 java.io 包中唯一代表磁盘文件本身的对象。File 类表示处理文件和文件系统的相关信息。File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。

    File 类实现了文件/目录的查看、创建、删除等方法

动态读写文件内容

  • 动态读取需要用到 Java 中的 RandomAccessFile 类,该类中有一个文件指针用于标识当前流的读写位置,这个指针可以向前或者向后移动。
  • RandomAccessFile 类提供了读写数据的一些方法

字节流的读写

字节输入流

InputStream 类及其子类的对象

  • ByteArrayInputStream: 字节数组输入流
  • FileInputStream : 文件输入流

字节输出流

OutputStream 类及其子类的对象

  • ByteArrayOutputStream: 字节数组输出流
  • FileOutputStream : 文件输出流

字符流的读写

字符输入流

Reader 类及其子类的对象

  • FileReader : 字符文件输入流
  • BufferedReader : 字符缓冲区输入流

字符输出流

Writer 类及其子类的对象

  • FileWriter : 字符文件输出流
  • BufferedWriter : 字符缓冲区输出流

总结 --- 思维导图

异常和输入输出.png

你可能感兴趣的:(Java 语法学习笔记(三))