流的分类:
1.流从流动方向上看:一般分为输入流和输出流
输入流:如System.in是一个InputStream类型输入流
输出流:如System.out 是一个PrintStream类型输出流
2.从读取类型上分:一般分为字节流和字符流
字节流:如System.in是一个InputStream类型字节流
字符流:如new InputStreamReader(System.in)是一个字符流对象
3.流从发生的源头:分为节点流和过滤流类
节点流:直接操作目标设备对应的流
如文件流,标准输入输出流
过滤流:继承带有关键字Filter的流
用于包装操作节点流,方便读写各种类型的数据
字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些?
1.InputStream的子类
FileInputStream 文件流
PipedInputStream 管道输入流,读取管道内容。多和PipedOutputStream一起用于多线程通信
ObjectInputStream用来恢复被序列化的对象
ByteArrayInputStream包含一个内存缓冲区,字节从中取出。
SequenceInputStream 是多种输入流的逻辑串联,从第一个输入流读取,直到最后一个输入流
FilterInputStream 过滤流,在读写数据的同时还可以对数据进行特殊处理
2.OutputStream的子类
FileOutputStream 文件流
PipedOutputStream 管道流
ObjectOutputStream将对象序列化后写入指定地方
ByteArrayOutputStream在字节数组和流之间搭建桥梁
SequenceOutputStream 是多种输入流的逻辑串联
FilterInputStream 过滤流,在读写数据的同时还可以对数据进行特殊处理