JAVA自学笔记,I/O 输入/输出流

输入/输出流

Java语言定义了许多类专门负责各种方式的输入/输出,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流)或抽象类Reader(字符输入流)的子类。而所有输出流都是抽象类OutputStream(字节输入流)或抽象类Writer(字符输出流)的子类。

输入流

输入流抽象类包括两种,分别是InputStream字节输入流和Reader字符输入流,下面分别介绍。

InputStream

InputStream类是字节输入流的抽象类,是所有字节输入流的父类。InputStream类的具体层次接口
JAVA自学笔记,I/O 输入/输出流
InputStream类中所有方法遇到错误时都会引发IOException异常,该类的常用方法及说明如下表。
JAVA自学笔记,I/O 输入/输出流
并不是所有的InputStream类的子类都支持InputStream中定义的所有方法,如skip,mark,reset等方法只对某些子类有用。

Reader类

Java中的字符是Unicode编码,是双字节的,而InputStream类是用来处理字节的。并不适合处理字符文本。Java为字符文本的输入专门提供了一套单独的Reader类,但Reader类并不是InputStream类的替换者,是指在处理字符时简化了编程,Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。Reader类的集体层次如下图。
JAVA自学笔记,I/O 输入/输出流
Reader类中的方法与InputStream类中的方法类似,但需要注意的一点是,Reader类中的read方法的参数为char类型的数组。另外,它还提供了一个ready方法,该方法用来判断是否准备读取流,返回值为boolean值。

输出流

输出流的抽象类包括两种,分别是OutputStream字节输出流和Write字符输出流。

OutputStream

OutputStream类
OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。OutputStream类的具体层次如下图。
JAVA自学笔记,I/O 输入/输出流
OutputStream类中的所有方法均返回void,在遇到错误时会引发IOException异常,该类的常用方法及说明如下表。
JAVA自学笔记,I/O 输入/输出流

Wirter类

Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。Writer类的层次结构如下图。
JAVA自学笔记,I/O 输入/输出流
Writer类的常用方法如下表。
JAVA自学笔记,I/O 输入/输出流