/**
* Reader的子类:
* BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
* CharArrayReader:此类实现一个可用作字符输入流的字符缓冲区。
* InputStreamReader:InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。
* FileReader:用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。
* FilterReader:用于读取已过滤的字符流的抽象类。
* PipedReader:传送的字符输入流。
* StringReader:其源为一个字符串的字符流
*
* Writer的子类:与Reader类基本对应。
*
* InputStream的子类:
* AudioInputStream:音频输入流是具有指定音频格式和长度的输入流
* ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节。
* FileInputStream:从文件系统中的某个文件中获得输入字节。
* FilterInputStream:包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
* InputStream:InputStream 是用来从 CDR 编组流中读取 IDL 类型的 Java API
* ObjectInputStream:对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
* PipedInputStream:管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的所有数据字节
*
*
*FilterInputStream的已知子类:
*BufferedInputStream:为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力
*CheckInputStream:需要维护所读取数据校验和的输入流。
*DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型
*
*/