分字符流和字节流,下图中没有包含RandomAccessFile,该类自成一派,属于IO包,但直接继承自object类。
- BufferedReader包装InputStreamReader,提供行读取。
- PipedReader和PiperWriter是用于不同线程之间通信的(传输字符),这两个必须结合使用,使用connect方法连接。
- FilterReader是抽象类
- DataInputStream和DataOutputStream提供很多方法来读写Java基本的数据类型,而不用进行转换,包括UTF编码
- ObjectInputStream是用来做对象序列化的。(扩展:如果要把一系列的对象做序列化,可以先把多个对象存入一个ArrayList对象中,然后对ArrayList做序列化)
- SequenceInputStream是用来合并多个字节流的,譬如多个文件的读取合并为一个流。参数是Enumeration,所以需要用Vector(elements)或者ArrayList(Collections.enumeration)存储,然后转为Enumeration
- StringBufferInputStream,该类已被Oracle弃用,过时
- PrintStream和PrintWriter都是用来做格式化输入的包装类