java中的I/O流从所操作的数据单元上分为两类:字节流和字符流。
1、字节流
字节流主要有两个抽象基类:InputStream和OutputStream;其中InputStream是输入字节流,OutputStream是输出字节流。
所有的有关字节流的操作都是基于这两个流的。
继承这两个抽象基类的字节流主要有:
1、FileInputStream/FileOutputStream,ByteArrayInputStream/ByteArratOutputStream,PipedInputStream/PipedOutputStream
上面的三类字节流都是一种节点流,在这里解释一下什么叫“节点流”。节点流,是指可以向一个特定的IO设备(如磁盘、网络)读/写数据的流。也就是说,与这个流关联的必须是一个特定的设备,这里叫设备可能不太合适,可以这样理解这个设备:在创建这个字节流实例时可以绑定的东西(文件,字符数组,字符串等)。
2、BufferedInputStream/BufferedOutputStream,ObjectInputStream/ObjectOutputStream,
同这个字节流相对应的是处理流,也叫做包装流。这里的处理流一般都是对节点流或是其他的处理流进行连接或是封装。