Java语言定义了许多专门负责各种方式的输入或者输出的类,这些类都被放在java.io包中。其中,所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类;而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类。
- InputStream类是字节输入流的抽象类,是所有字节输入流的父类,InputStream类具有层次结构如下图所示;
2.java中的字符使用Unicode编码,是双字节的。而InputStream是用来处理字节的,在处理字符文本时很不方便。Java为字符文本的输入提供了专门的一套类Reader类。Reader类是字符输入流的抽象类,所有字符输入流的实现都是它的子类。
3.输出流OutputStream类是字节输入流的抽象类,此抽象类表示输出字节流的所有类的超类。
4.Writer类是字符输出流的抽象类,所有字符输出类的实现都是它的子类。